P03 Sekilas Array dan Penggunan Berkas Teks

dokumen-dokumen yang mirip
P02 Menulis dan Membaca Berkas Teks

P01 Pengenalan Pemrograman C++ di Linux

P00 Perintah Dasar dalam Linux

P04 Mengurutkan Data dan Waktu Proses

P06 Pointer dan Fungsi

P05 Visualisasi Data dengan gnuplot

P07 Konstanta, Makro, Struktur, dan Kelas

Vigènere Chiper dengan Modifikasi Fibonacci

Baca Tulis File. Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah:

File I/O in C++ Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

//Kelas ini berisi data yang hendak disimpan ke dalam database

INF-103 Pemrograman II VECTOR & STRING. Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc. Program Studi Informatika FMIPA UNIVERSITAS KUALA

File & Stream. Kegunaan File : file : ini. dengan. iostream.h) suatu. stream, Jika. dapat menghubungkan. mendeklarasikan. kita.

Pemrograman I Bab VI Pengulangan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

MODUL 2 TIPE DATA, KONSTANTA DAN VARIABEL

LATIHAN SOAL (FUNGSI & PROSEDUR)

PEMROGRAMAN BERORIENTASI OBJEK. Input / Output. Budhi Irawan, S.Si, M.T

REVIEW ARRAY. Institut Teknologi Sumatera

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

PENGENALAN FUNGSI C++

Komentar, Identifier, Konstanta dan Variabel

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

INF-103 Pemrograman II FUNGSI C++ Dr. Taufik Fuadi Abidin, M.Tech Irvanizam, M.Sc. Program Studi Informatika FMIPA UNIVERSITAS KUALA

Pengenalan C++ Oleh : Dewi Sartika

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

KU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B)

FILE & STREAM Bab FILE

Chapter 9 Operator Types dan Operator Overloading

Kurikulum Qt. Chapter 4 Function. Fungsi

Perulangan, Percabangan, dan Studi Kasus

MODUL 9 Material Texture


MODUL 4 PERULANGAN A. TUJUAN

Part 2 - Algoritma & Pemrograman Konsep dasar Pemrograman

VARIABEL & TIPE DATA PEMROGRAMAN C++

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

Pemrograman I Bab III Tipe Data, Variabel, dan Operasi Perhitungan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS

Subprogram (dalam Bahasa C++ + Flowchart)

Konsep Dasar Pemrograman Dan Pengenalan C++


Array (Tabel) [DalamBahasaC++]

Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada file 3.

FILE INPUT/OUTPUT. Overview

PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN

Algoritma Pemrograman 2B (Pemrograman C++)

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

Pemrograman I Bab V Percabangan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

A. TUJUAN PEMBELAJARAN

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

Tipe Data, Variabel, Input/Output

STRUKTUR DASAR PEMROGRAMAN

Sekilas C DAN C++ DISUSUN OLEH. Sebuah bahasa, yaitu: 1. Bahasaa tingkat tinggi. High. dapat. lunak

1 - Bahasa Pemrograman

Program Menggabungkan 2 Tipe String

Abstrak. Pendahuluan. cerita. Pemrograman. mewakili semua. Struktur Bahasa. dan deklarasi. Mari. ilmuti.org Seluruh disertakan dalam

MODUL. Pemrograman Terstruktur Semester IV, 2017 Acihmah Sidauruk, M.Kom. 1. Tujuan. 2. Teori Singkat. 3. Praktikum KONSTAN DAN OPERATOR

Kurikulum Qt. Chapter 8 - Polymorphism. Polimorfisme. Problema Pewarisan Tunggal (Single Inheritance)

Bahasa C Array. Slide diambil dari MK Dasar-Dasar Pemrograman Fasilkom UI Dimodifikasi dan disesuaikan dngn kebutuhan pengajaran di PTI-Undiksha

DISUSUN OLEH BAB II C DAN C++ berikut ini: pilih radio HAL 1

BAHASA PEMROGRAMAN C

MODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN

Hari : Rabu Pertemuan : 3 Tanggal Praktikum : Oktober 2001 Shift : 4

IF IF ELSE. ELSE IF SWITCH CASE STATEMENT F NT OR, W HILE D O WHILE I 2

MODUL 1 DASAR-DASAR PEMROGRAMAN C++

BAB 12 MANIPULATION FILE

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

TUTORIAL DASAR C++ BELAJAR C++ DARI NOL. Nor Kandir. Lab B201 - Teknik Elektro ITS Surabaya

ALGORITMA RINTA KRIDALUKMANA SISKOM UNDIP

1. Mempelajari konsep dasar array, array ganda, pengiriman array ke fungsi dan string 2. Membuat program menggunakan array, array ganda

PEMROGRAMAN BERORIENTASI OBJEK. Tipe Data. Budhi Irawan, S.Si, M.T

RUBRIK PENILAIAN UJIAN TENGAH SEMESTER KU1072/PENGENALAN TEKNOLOGI INFORMASI B SEM /2014

TUGAS PENDAHULUAN MODUL I PERKENALAN MIKU, COMPILER BAHASA C, DAN STANDARD INPUT-OUTPUT

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String

Melakukan Operasi Logika

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

Algoritma Pemrograman 2B (Pemrograman C++)

Keg. Pembelajaran 2 : Mengenal Bahasa C++

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

KUMPULAN PROGRAM C++ TUGAS AKHIR MATA KULIAH PBP D I S U S U N OLEH

Algoritma Pemrograman & Struktur Data

Dasar Pemrograman. Visual Studio Program C++ Sederhana. Yoannita, S.Kom.

PENGENALAN DAN PENERAPAN OOP PADA C++

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL

MODUL V POINTER DAN STRING

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

PEMROGRAMAN BERORIENTASI OBJEK

Fungsi 1. Ekohariadi FT Unesa

KOTLIN, SIAPA SUKA. Dasar. P. Tamami BPPKAD Kab. Brebes

Pengenalan Algoritma

MODUL 1 Operasi Dasar dalam PHP

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera

BAB Argument Command-Line dan System Properties

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

Chapter 1 KONSEP DASAR C

Transkripsi:

P03 Sekilas Array dan Penggunan Berkas Teks Modul Praktikum FI2283 Pemrograman dan Simulasi Fisika Versi 2013.09.23 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, 23 September 2013 yang merupakan praktikum minggu kedua, setiap pengguna menyimpan berkas-berkasnya dalam folder 20130923-03 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 Array dan ukurannya 28 2 Format tampilan pada konsol 28 3 Jumlah suku-suku suatu deret data 29 4 Nilai rata-rata suku-suku suatu deret data 29 5 Nilai minimum suatu deret data 30 6 Nilai maksimum suatu deret data 31 7 Standar deviasi 31 8 Program pembangkit berkas teks deret data 31 9 Program analisa berkas teks deret data 34 10 Program data-analyze2 37 27

1 Array dan ukurannya Ketiklah program berikut ini /* */ array1.cpp 20130923.0121 Sparisoma Viridi <dudung@gmail.com> Define and display array of double Compile: g++ array1.cpp -o array1 Execute:./array1 #include <string.h> #include <iostream> #include <fstream> #include <iomanip> using namespace std; int main(int argc, char *argv[]) { // Define an array and determine its size double x[] = {2.0, 5.0, 4.0, 1.0, 7.0, 2.0, 2.0, 3.0; int N = sizeof(x) / sizeof(double); for(int i = 0; i < N; i++) { cout << x[i] << endl; return 0; Tugas 1. Kompilasi program array1.cpp di atas sehingga menghasilkan perintah array1 dan jalankan seperti pada keterangan dalam program tersebut. Laporkan hasilnya dalam berkas laporan.txt dan berikan penjelasan fungsi dari perintah C++ sizeof. 2 Format tampilan pada konsol Modifikasi program array1.cpp dan simpan dengan nama array2.cpp sehingga dapat dipanggil dengan cara./array2. Sesuaikan hal-hal, seperti dalam keterangan dan cara melakukan kompilasi serta menjalankan, yang diperlukan. 28

Tugas 2. Buat sesederhana mungkin dengan menggunakan perintah C++ if() sehingga array2.cpp dapat memberikan hasil keluaran pada konsol berupa 2, 5, 4, 1, 7, 2, 2, 3 3 Jumlah suku-suku suatu deret data Bila terdapat suatu deret seperti 2,5,4,1,7,2,2,3, (1) yang tiap-tiap sukunya pada indeks ke-i dapat dirujuk dengan U i, maka jumlah suku-suku pada deret data dalam Persamaan (1) dapat dihitung melalui S 8 = 8 U i. (2) i=1 Dalam hal ini sukup pertama dalam deret data tersebut memiliki indeks 1, sehingga suku terakhirnya memiliki indeks 8. Potongan kode program untuk merepresentasikan Persamaan (2) adalah sebagai berikut ini double xsum = 0.0; for(int i = 0; i < N; i++) { xsum = xsum + x[i]; Tugas 3. Modifikasi program sebelumnya dan simpan dengan nama array3.cpp sehingga dapat dipanggil dengan cara./array3. Sesuaikan hal-hal, seperti dalam keterangan dan cara melakukan kompilasi serta menjalankan, yang diperlukan. Tambahkan potongan kode di atas sehingga array3.cpp dapat memberikan keluaran jumlah dari suku-suku deret data dari Persamaan (1) pada konsol. Laporkan hasilnya dalam laporan.txt. 4 Nilai rata-rata suku-suku suatu deret data Nilai rata-rata suku-suku deret data dalam Persamaan (1) dapat dihitung dengan menggunakan Persamaan (2), yang formulasi lebih umumnya menjadi U avg = 1 N N U i, (3) i=1 29

dengan indeks awal deret adalah 1 dan indeks akhirnya adalah N. Potongan kode untuk menghitungnya adalah double xavg = xsum / N; Tugas 4. Modifikasi program sebelumnya dan simpan dengan nama array4.cpp sehingga dapat dipanggil dengan cara./array4. Sesuaikan hal-hal, seperti dalam keterangan dan cara melakukan kompilasi serta menjalankan, yang diperlukan. Tambahkan potongan kode di atas sehingga array4.cpp dapat memberikan keluaran nilai rata-rata dari suku-suku deret data dari Persamaan (1) pada konsol. Laporkan hasilnya dalam laporan.txt. 5 Nilai minimum suatu deret data Deret dalam Persamaan (1) dapat ditentukan nilai minimumnya dengan menggunakan langkah-langkah berikut ini 1. Definisikan jumlah suku N. 2. Indeks suku yang ditinjau i = 1. 3. x min = U i 4. i = i + 1. 5. Apakah i > N? Bila ya pergi lakukan Langkah 7. 6. Bandingkan apakah x min > U i, bila ya lakukan Langkah 3, bila tidak lakukan Langkah 4 7. Tampilkan nilai x min. Implementasi dari langkah-langkah di atas dalam bentuk potongan kode program adalah double xmin = x[0]; for(int i = 1; i < N; i++) { if(xmin > x[i]) { xmin = x[i]; Perhatikan bahwa indeks dalam suatu persamaan matematik, seperti dalam Persamaan (1) - (3) umumnya dimulai dari 1 sedangkan dalam pemrograman umumnya dimulai dari 0. 30

Tugas 5. Modifikasi program sebelumnya dan simpan dengan nama array5.cpp sehingga dapat dipanggil dengan cara./array5. Sesuaikan hal-hal, seperti dalam keterangan dan cara melakukan kompilasi serta menjalankan, yang diperlukan. Tambahkan potongan kode di atas sehingga array5.cpp dapat memberikan keluaran nilai minimum dari suku-suku deret data dari Persamaan (1) pada konsol. Laporkan hasilnya dalam laporan.txt. 6 Nilai maksimum suatu deret data Dengan cara yang sama, suatu algoritma atau langkah-langkah dapat dibuat untuk menentukan nilai maksimum dari suatu deret data. Tugas 6. Modifikasi langkah-langkah penentukan nilai minimum suatu deret data sebelumnya sehingga dapat digunakan untuk menentukan nilai maksimum suatu deret data. Laporkan hasilnya dalam laporan.txt. Modifikasi program sebelumnya dan simpan dengan nama array6.cpp sehingga dapat dipanggil dengan cara./array6. Sesuaikan hal-hal, seperti dalam keterangan dan cara melakukan kompilasi serta menjalankan, yang diperlukan. Diinginkan array6.cpp dapat memberikan keluaran nilai maksimum dari suku-suku deret data dari Persamaan (1) pada konsol. Laporkan hasilnya dalam laporan.txt. 7 Standar deviasi Standar deviasi dari suatu deret data U i, i = 1.. N dapat dihitung dengan menggunakan σ = 1 N N (U i U avg ) 2, (4) i=1 di mana U avg diperoleh dari Persamaan (3) sebelumnya. Tugas 7. Buatlah implementasi dari Persamaan (4) dalam bentuk potongan kode program (bukan suatu program utuh), mirip dalam dua atau tiga bagian sebelumnya. Gunakan suatu variabel sementara temp untuk menghitung suku (U i U avg ) 2 dalam iterasi pada potongan kode tersebut. Laporkan potongan kode tersebut dalam berkas laporan.txt. 8 Program pembangkit berkas teks deret data Suatu saat, misalnya dalam simulasi Monte Carlo, diperlukan data-data acak yang akan digunakan untuk pemodelan peristiwa fisis yang terjadi di alam ini, 31

yang bersifat acak. Data acak yang sebenarnya sulit untuk dianalisa dan tidak reproducible, oleh karena itu beberapa data dibangkitkan lalu disimpan dan dianggap mewakili keacakan yang sebenarnya. Dengan demikian, apabila diperlukan, kondisi tersebut dapat diulangi kembali perhitungannya dengan parameter yang berbeda. Berikut ini adalah contoh program untuk membangkitkan data dalam bentuk file keluaran, belum merupakan data acak. Salinlah kode program berikut ini. /* */ data-gen.cpp 20130922 Sparisoma Viridi <dudung@gmail.com> Generate data in text file for further use Compile: g++ data-gen.cpp -o data-gen Execute:./data-gen output #include <string.h> #include <iostream> #include <fstream> #include <iomanip> using namespace std; int main(int argc, char *argv[]) { // Get program name char *arg0 = argv[0]; char *pname = strstr(arg0, "./") + 2; // Check whether user provides output filename if(argc < 2) { cout << "Usage: " << pname << " output" << endl; cout << "output filename for writing output to"; // Terminate program if no output filename provided return 1; // Define an array and determine its size double x[] = {2.0, 5.0, 4.0, 1.0, 7.0, 2.0, 2.0, 3.0; int N = sizeof(x) / sizeof(double); // Define filestream for output and its filename ofstream fout; 32

char *ofn = argv[1]; fout.open(ofn); // Check wheter the output file can be opened if(fout.is_open()) { // Write header in output file fout << "#x" << endl; // Set fixed number of digits of output with 1 place // after decimal point fout << fixed; fout << setprecision(1); for(int i = 0; i < N; i++) { fout << x[i] << endl; // Inform user that data is written successfully cout << pname << ": data is written to "; cout << ofn << endl; // Close filestream fout.close(); else { cout << pname << ": " << ofn << " can not be opened "; cout << "for writing" << endl; // Terminate program if output file can not be opened return 2; return 0; Kode di atas merupakan implementasi lebih lanjut dari bagian pertama modul praktikum ini dalam bentuk program yang dapat menyimpan hasilnya dalam bentuk berkas teks. Tugas 8. Salin, lakukan kompilasi, dan jalankan kode program di atas sesuai dengan keterangan di dalamnya. Jalankah program tersebut dengan cara./data-gen data-gen.txt Laporkan hasil keluarannya dalam laporan.txt. 33

9 Program analisa berkas teks deret data Perhatikan kode program berikut ini. /* */ data-analyze.cpp 20130923 Sparisoma Viridi <dudung@gmail.com> Calculate sum, average, minimumum, maximum of data from text file -- an integrated code Compile: g++ data-analyze.cpp -o data-analyze Execute:./data-analyze input #include <string.h> #include <stdlib.h> #include <iostream> #include <fstream> #include <iomanip> using namespace std; int main(int argc, char *argv[]) { // Get program name char *arg0 = argv[0]; char *pname = strstr(arg0, "./") + 2; // Check whether user provides output filename if(argc < 2) { cout << "Usage: " << pname << " input" << endl; cout << "input filename for reading input from"; // Terminate program if no output filename provided return 1; // Define filestream for input and its filename ifstream fin; char *ifn = argv[1]; fin.open(ifn); // Check wheter the output file can be opened if(fin.is_open()) { // Check number of lines in the file 34

int N = 0; while(!fin.eof()) { string line; getline(fin, line); const char *str = line.c_str(); if((str[0]!= # ) && (strlen(str) > 0)) { N++; fin.close(); // Reopen the file fin.open(ifn); fin.clear(); // Define array of double double *x = new double[n]; // Read the data from file and then close the file int i = 0; while(!fin.eof()) { string line; getline(fin, line); const char *str = line.c_str(); if((str[0]!= # ) && (strlen(str) > 0)) { // Assume only one data in a line x[i] = atof(str); i++; fin.close(); // Inform user that data is written successfully cout << pname << ": data is read from "; cout << ifn << endl; // Display reading result cout << pname << ": data are "; for(int i = 0; i < N; i++) { cout << x[i]; if(i < N - 1) { cout << ", "; else { 35

// Calculate sum of data double xsum = 0.0; for(int i = 0; i < N; i++) { xsum = xsum + x[i]; cout << pname << ": sum of data is " << xsum; // Calculate average double xavg = xsum / N; cout << pname << ": average of data is " << xavg; // Determine minimum double xmin = x[0]; for(int i = 1; i < N; i++) { if(xmin > x[i]) { xmin = x[i]; cout << pname << ": minimum is " << xmin; // Determine maximum double xmax = x[0]; for(int i = 1; i < N; i++) { if(xmax < x[i]) { xmax = x[i]; cout << pname << ": maximum is " << xmax; else { cout << pname << ": " << ifn; cout << " can not be opened "; cout << "for reading" << endl; // Terminate program if input file can not be opened return 2; return 0; 36

Kode di atas merupakan implementasi lebih lanjut dari bagian kedua sampai bagian keenam modul praktikum ini dalam bentuk program terintegrasi yang dapat membaca data deret dalam bentuk berkas teks. Tugas 9. Salin, lakukan kompilasi, dan jalankan kode program di atas sesuai dengan keterangan di dalamnya. Jalankah program tersebut dengan cara./data-analyze data-gen.txt di mana berkas data-gen.txt telah dihasilkan dalam bagian sebelumnya. Laporkan hasil keluarannya dalam laporan.txt. 10 Program data-analyze2 Dalam bagian ini potongan kode yang telah dibuat pada bagian standar deviasi akan diimplementasikan di sini sehingga program data-analyze2 menjadi suatu program sederhana yang utuh, yang dapat dimanfaatkan untuk menganalisasi berkas teks data yang terdiri dari satu kolom. Tugas 10. Modifikasi kode program sebelumnya dan sisipkan potongan kode untuk menghitung standar deviasi pada tiga bagian sebelumnya, simpan dengan nama data-analyze2. Program data-analyze2 ini apabila dipanggil dengan cara./data-analyze2 data-gen.txt diinginkan akan memberikan hasil data-analyze: data is read from data-gen.txt data-analyze: data are 2, 5, 4, 1, 7, 2, 2, 3 data-analyze: sum of data is 26 data-analyze: average of data is 3.25 data-analyze: minimum is 1 data-analyze: maximum is 7 data-analyze: standard deviation is 1.85405 Gunakan variabel sigma untuk menghitung standar deviasi dalam program data-analyze2.cpp. Laporkan hasil keluarannya dalam laporan.txt. 37

Keluaran praktikum 1. array1.cpp, array2.cpp, array3.cpp, array4.cpp, array5.cpp, array6.cpp, data-gen.cpp, data-gen.txt, data-analyze.cpp, dan data-analyze2.cpp. 2. laporan.txt yang berisikan jawaban dari Tugas 1, 3, 4, 5, 6, 7, 8, 9, dan 10. This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. 1 1 Sparisoma Viridi <dudung@gmail.com>,.., 2013 38