Jumat, 21 Agustus 2020

FUNCTION, STRUCTURE DAN FILE STREAM

 

 

  • v FUNCTION

1.    Pengertian Fungsi

Fungsi adalah sub-program yang bisa digunakan kembali baik di dalam program itu sendiri, maupun di program yang lain.

Fungsi dapat menerima input dan menghasilkan output.Contoh fungsi yang sering kita buat adalah fungsi main().

2.    Buat Fungsi

C ++ menyediakan beberapa fungsi yang telah ditentukan sebelumnya, seperti main()yang digunakan untuk mengeksekusi kode. Tetapi Anda juga dapat membuat fungsi Anda sendiri untuk melakukan tindakan tertentu.

Untuk membuat (disebut sering sebagai deklarasi ) fungsi, tentukan nama fungsinya, diikuti dengan tanda kurung () :

Sintaksis

void myFunction() {
  
// code to be executed
}

Contoh Dijelaskan

  • myFunction() adalah nama fungsinya
  • voidartinya fungsi tersebut tidak memiliki nilai kembali. Anda akan belajar lebih lanjut tentang nilai kembali nanti di bab berikutnya
  • di dalam fungsi (tubuh), tambahkan kode yang mendefinisikan apa yang harus dilakukan fungsi tersebut.

Panggil Fungsi

Fungsi yang dideklarasikan tidak dijalankan. Mereka "disimpan untuk digunakan belakangan", dan akan dijalankan nanti, ketika dipanggil.

Untuk memanggil fungsi, tulis nama fungsi diikuti dengan dua tanda kurung () dan titik koma;

Dalam contoh berikut, myFunction()digunakan untuk mencetak teks (tindakan), saat dipanggil.

Contoh

Di dalam main, hubungi myFunction():

// Create a function
void myFunction() {
  cout << 
"I just got executed!";
}

int main() {
  myFunction(); 
// call the function
  return 0;
}

Deklarasi dan Definisi Fungsi

Fungsi C ++ terdiri dari dua bagian:

  • Deklarasi: nama fungsi, kembalian, dan parameter (jika ada)
  • Definisi: tubuh fungsi (kode yang akan dieksekusi)

Sintaks:

void myFunction() { // declaration
  // the body of the function (definition)
}

Catatan: Jika fungsi yang ditentukan pengguna, seperti yang myFunction() dideklarasikan setelah main() fungsi, kesalahan akan terjadi . Itu karena C ++ bekerja dari atas ke bawah; yang berarti jika fungsi tidak dideklarasikan di atas main(), program tidak menyadarinya:

Contoh:

int main() {
  myFunction();
  
return 0;
}

void myFunction() {
  cout << 
"I just got executed!";
}

Namun, pencahayaan yang tepat untuk deklarasi dan definisi fungsi - untuk pengoptimalan kode.

Anda akan sering melihat program C ++ yang memiliki deklarasi fungsi di atas main(), dan definisi fungsi di bawah main(). Ini akan membuat kode lebih terorganisir dan lebih mudah dibaca:

Contoh

// Function declaration
void myFunction();

// The main method
int main() {
  myFunction();  
// call the function
  return 0;
}

// Function definition
void myFunction() {
  cout << 
"I just got executed!";
}

 

User-defined function

Sintaks penulisan User-defined function dalam C++ terdiri dari return_type, nama function, argument/parameter dan body function.

return_type function_name ( parameter list )
{
function_body;
}

Contoh function dalam C++ :

1

2

3

4

5

6

7

8

9

10

11

12

13

#include <iostream>

using namespace std;

int addition (int a, int b) //called or calling function berisi formal parameter

{    int r;

     r=a+b;

     return r;

}

int main ()

{    int z;

     z = addition (5,3); // caller function berisi actual parameter

     cout << "The result is " << z;

     return 0;

}


Nilai (value) 5 dan 3 dikirim oleh fungsi pemanggil (caller function) ke fungsi called function atau calling function melalui parameter (Passing parameter).

Argument pada caller function disebut actual parameter dan argument pada calling function disebut formal parameter.

Ada 3 macam passing data pada function C++:

  1. Passing By Value
  2. Passing By Reference
  3. Passing By Address

 

Contoh soal Function :

1.    Sebutkan 2 bahasa pemograman utama yang menggunakan istilah Fungsi (Function) ?

Jawab: C++ dan Java

2.    Jelaskan secara singkat fungsi darri function pada c++?

Jawab : Function dalam C++ berisi code statement yang melakukan tugas (task) yang koheren atau berhubungan.
Function biasanya digunakan untuk tugas yang berulang, sehingga kita tidak perlu menulis lagi coding yang sama (reusability).

3.    Pengertian dari library Function?

Jawab : Library function –> kumpulan function dalam satu container yang disebut library, contoh library cmath <math.h> yang berisi fungsi-fungsi matematika seperti: sqrt(x), pow(x,y), dll.

4.    Pengertian dari User-Defined Function?

Jawab : User-defined function –> fungsi yang kita buat sendiri.

5.    Fungsi dari myfunction() ?

Jawab : my function() -> digunakan untuk mencetak teks (tindakan), saat dipanggil.

6.    Ada 3 macam passing data pada function C++,Sebutkan!

Jawab : Passing By Value, Passing By Reference, Passing By Address

7.    Pengertian dan fungsi dariPassing By Value, Passing By Reference, Passing By Address?

Jawab :

Pass By Value melewatkan parameter berdasarkan nilainya.

Pass By Reference melewatkan parameter berdasarkan referensinya.

Pass by address kadang juga disebut sebagai Pass by pointer. adalah salah satu metode untuk memberikan argument kepada function parameter saat pemanggilan function, dengan memanfaatkan pointer dereference.

8.    Fungsi dasar dari Function?

Jawab :

Printf() berfungsi untuk menampilkan informasi atau  data ke layer

Scanf() berfungsi untuk membaca kode tombol yang di inputkan.

9.    Apa yang di maksud dengan “Tubuh Fungsi” ?

Jawab : deklarasi variable dan statement-statemet yang melakukan tugas yang akan di berikan kepada fungsi yang bersangkutan. Tubuh fungsi ditulis menggunakan kurung kurawal buka dan kurung kurawal tutup.

10. Apa itu yang merupakan “Tipe Keluaran Fungsi”?

Jawab : Char atau Int  

 

 

v STRUCTUR

1.    Apakah struktur itu?

Struktur adalah tipe data yang ditentukan pengguna di C / C ++. Struktur membuat tipe data yang dapat digunakan untuk mengelompokkan item dari tipe yang mungkin berbeda menjadi satu tipe.

 

2.    Bagaimana cara membuat struktur?

Kata kunci 'struct' digunakan untuk membuat struktur. Sintaks umum untuk membuat struktur adalah seperti di bawah ini:

struct structureName {

    member1;

    anggota2;

    anggota3;

    .

    .

    .

    memberN;

};

Struktur di C ++ dapat berisi dua jenis anggota:

·         Anggota Data : Anggota ini adalah variabel C ++ normal. Kita dapat membuat struktur dengan variabel dari tipe data yang berbeda di C ++.

·         Fungsi Anggota : Anggota ini adalah fungsi C ++ normal. Bersama dengan variabel, kita juga bisa menyertakan fungsi di dalam deklarasi struktur.

Contoh :

 

// Data Members

int roll;

int age;

int marks;

      

// Member Functions

void printDetails()

{

    cout<<"Roll = "<<roll<<"\n";

    cout<<"Age = "<<age<<"\n";

    cout<<"Marks = "<<marks;

}

Dalam struktur di atas, anggota data adalah tiga variabel bilangan bulat untuk menyimpan nomor gulungan, usia dan nilai siswa dan fungsi anggota printDetails () yang mencetak semua rincian siswa di atas.

 

3.    Bagaimana cara mendeklarasikan variabel struktur?

Variabel struktur dapat dideklarasikan dengan deklarasi struktur atau sebagai deklarasi terpisah seperti tipe dasar.

// A variable declaration with structure declaration.

struct Point

{

   int x, y;

} p1;  // The variable p1 is declared with 'Point'

  

  

// A variable declaration like basic data types

struct Point

{

   int x, y;

}; 

  

int main()

{

   struct Point p1;  // The variable p1 is declared like a normal variable

}

 

4.    Bagaimana cara menginisialisasi anggota struktur?

Anggota struktur tidak dapat diinisialisasi dengan deklarasi. Misalnya program C berikut gagal dalam kompilasi.

struct Point

{

   int x = 0;  // COMPILER ERROR:  cannot initialize members here

   int y = 0;  // COMPILER ERROR:  cannot initialize members here

};

Alasan kesalahan di atas sederhana, ketika tipe data dideklarasikan, tidak ada memori yang dialokasikan untuk itu. Memori dialokasikan hanya ketika variabel dibuat.

Anggota struktur bisa diinisialisasi menggunakan kurung kurawal '{}'. Misalnya, berikut ini adalah inisialisasi yang valid.

 

struct Point

{

   int x, y;

}; 

  

int main()

{

   // A valid initialization. member x gets value 0 and y

   // gets value 1.  The order of declaration is followed.

   struct Point p1 = {0, 1}; 

}

5.    Bagaimana cara mengakses elemen struktur?

Anggota struktur diakses menggunakan operator titik (.).

#include <iostream>

using namespace std;

  

struct Point {

    int x, y;

};

  

int main()

{

    struct Point p1 = { 0, 1 };

  

    // Accessing members of point p1

    p1.x = 20;

    cout << "x = " << p1.x << ", y = " << p1.y;

  

    return 0;

}

 

Keluaran:

 

x = 20, y = 1

 

6.    Apa itu susunan struktur?

 

Seperti tipe data primitif lainnya, kita dapat membuat array struktur.

#include <iostream>

using namespace std;

  

struct Point {

    int x, y;

};

  

int main()

{

    // Create an array of structures

    struct Point arr[10];

  

    // Access array members

    arr[0].x = 10;

    arr[0].y = 20;

  

    cout << arr[0].x << " " << arr[0].y;

    return 0;

}

Keluaran:

 10       20

 

7.    Apa itu penunjuk struktur?

Seperti tipe primitif, kita dapat memiliki pointer ke suatu struktur. Jika kita memiliki penunjuk ke struktur, anggota diakses menggunakan operator panah (->) alih-alih operator titik (.).

#include <iostream>

using namespace std;

  

struct Point {

    int x, y;

};

  

int main()

{

    struct Point p1 = { 1, 2 };

  

    // p2 is a pointer to structure p1

    struct Point* p2 = &p1;

  

    // Accessing structure members using

    // structure pointer

    cout << p2->x << " " << p2->y;

    return 0;

}

Keluaran:

1             2

 

 

Contoh soal Structur :

1.    Bila diketahui tiga buah bilangan : 

Int i = 79, j = 5; 

float k = i / j; 

maka pernyataan:

cout << “k = “; 

cout.width(5);

cout.precision(2); 

cout << k << endl; 

akan manampilkan hasil ?

Jawab : k = 15

 

2.    Penggunaan struktur kondisi seleksi bertingkat:  perintah:

“if  “untuk menyatakan pilihan selain dari kondisi yang ada

menggunakan ?

jawab : else if

3.    Pengertian Array adalah ?

Jawab : Array adalah struktur data yang terdiri dari kumpulan variabel yang tipe datanya sama.

4.    Pengertian struktur (struct) ?

Jawab : Struktur merupakan struktur data yang terdiri dari satu atau lebih variabel yang mempunyai tipe data sama atau berlainan.

5.    Perbedaan structure dan array?

Jawab : Array hanya menyimpan data dengan tipe data yang sama sedangkan structure dikatakan sebagai tipe data baru yang dapat menampung berbagai tipe data lain yang berbeda.

6.    Persamaan structure dan array ?

Jawab : pengelompokan data secara bersamaan sehingga menjati tipe yang sama.

7.    Fungsi dari “return 0;” ?

Jawab : Default dari return adalah 0. Artinya fungsi telah selesai dengan baik. Fungsi mungkin saja mengembalikan nilai lain dalam bentuk integer.

8.    Fungsi dari  ‘arr[0].’?

Jawab : arr[0] merupakan ukuran elemen pertama dalam program.

9.    Pengertian struct bersarang (Nested)?

Jawab : Struct dapat dibuat bersarang (nested). Bersarang artinya ada struct di dalam struct.

10. Berikan salah satu contoh program struct bersarang !

Jawab :

#include <iostream>

using namespace std;

main()

{

struct complex

{

 int imag;

 float real;

};

 

struct number

{

   struct complex comp;

   int integers;

} num1, num2;

}


  • v FILE STREAM

File dan Stream C ++

Dalam pemrograman C ++ kami menggunakan pustaka standar iostream , yang menyediakan metode cin dan cout untuk membaca dari input dan menulis ke output masing-masing.

Untuk membaca dan menulis dari file kami menggunakan pustaka C ++ standar yang disebut fstream . Mari kita lihat tipe data yang didefinisikan di perpustakaan fstream adalah:

·         Ofstream : Merupakan sebuah tipe data output yang memungkinkan kita untuk melakukan pembuatan dan menulis informasi pada file.

·         Ifstream : Merupakan sebuah tipe data input yang memungkinkan kita melakukan pembacaan informasi dari file.

·         Fstream : Merupakan sebuah tipe data input output file yang memungkinkan kita untuk melakukan kedua hal tersebut, seperti membuat, menulis dan membaca informasi dari file.

Membuka File

Untuk dapat melakukan input output yang diterapkan kepada file fisik, kita membutuhkan pengait, hal itu disebut sebagai “open file” atau membuka file. Untuk memberikan perintah membuka file dengan obyek steam, kita menggunakan function seperti di bawah ini.

Bentuk penulisan:

1

open(namafile, mode);

Keterangan:

namafile:

merupakan tempat dimana sebuah argumen untuk menuliskan nama dari sebuah file yang akan di buka.

mode:

adalah sebuah tempat dimana kita dapat mengisikan banyak flag sebagai argumen untuk mendefinisikan jenis mode dalam menangani file tersebut.

Di bawah ini adalah macam-macam flag yang dapat digunakan untuk mendefinisikan mode pada operasi sebuah file:

ios::in

Untuk mendefinisikan pembukaan file sebagai sebuah operasi pembacaan (input)

ios::out

Untuk mendefinisikan pembukaan file sebagai sebuah operasi penulisan (output)

ios::binary

membuka file dalam mode binari

ios::ate

Membuka sebuah file dan memindahkan kendali input dan output pada akhir dari file, jika tidak maka kendali akan berada pada awal file.

ios::app

Mode penambahan, setiap penambahan tulisan akan ditambahkan pada akhir file.

ios::trunc

Jika file sudah ada, maka akan digantikan sepenuhnya sebelum proses membuka file.

 

Anda dapat menggabungkan dua atau lebih nilai ini dengan ATAU menggabungkannya. Misalnya jika Anda ingin membuka file dalam mode tulis dan ingin memotongnya jika sudah ada, berikut adalah sintaksnya -

o   ofstream outfile;
outfile.open("file.dat", ios::out | ios::trunc );

Dengan cara serupa, Anda dapat membuka file untuk membaca dan menulis sebagai berikut -

o   fstream  afile;
afile.open("file.dat", ios::out | ios::in );

Menutup File

Ketika program C ++ menghentikannya secara otomatis mengosongkan semua aliran, lepaskan semua memori yang dialokasikan dan tutup semua file yang dibuka. Tetapi selalu merupakan praktik yang baik bahwa seorang programmer harus menutup semua file yang dibuka sebelum program dihentikan.

Berikut ini adalah sintaks standar untuk fungsi close (), yang merupakan anggota dari objek fstream, ifstream, dan ofstream.

void close();

Menulis ke File

Saat melakukan pemrograman C ++, Anda menulis informasi ke file dari program Anda menggunakan operator penyisipan aliran (<<) sama seperti Anda menggunakan operator itu untuk mengeluarkan informasi ke layar. Satu-satunya perbedaan adalah Anda menggunakan objek ofstream atau fstream sebagai ganti objek cout .

Membaca dari File

Anda membaca informasi dari file ke dalam program Anda menggunakan operator ekstraksi aliran (>>) sama seperti Anda menggunakan operator itu untuk memasukkan informasi dari keyboard. Satu-satunya perbedaan adalah Anda menggunakan objek ifstream atau fstream, bukan objek cin .

Membaca dan Menulis Contoh

Berikut adalah program C ++ yang membuka file dalam mode membaca dan menulis. Setelah menulis informasi yang dimasukkan, program akan membaca informasi dari file dan mengeluarkannya ke layar.

#include <fstream>
#include <iostream>
using namespace std;
 
int main () {
   char data[100];
 
   // open a file in write mode.
   ofstream outfile;
   outfile.open("afile.dat");
 
   cout << "Writing to the file" << endl;
   cout << "Enter your name: "; 
   cin.getline(data, 100);
 
   // write inputted data into the file.
   outfile << data << endl;
 
   cout << "Enter your age: "; 
   cin >> data;
   cin.ignore();
   
   // again write inputted data into the file.
   outfile << data << endl;
 
   // close the opened file.
   outfile.close();
 
   // open a file in read mode.
   ifstream infile; 
   infile.open("afile.dat"); 
 
   cout << "Reading from the file" << endl; 
   infile >> data; 
 
   // write the data at the screen.
   cout << data << endl;
   
   // again read the data from the file and display it.
   infile >> data; 
   cout << data << endl; 
 
   // close the opened file.
   infile.close();
 
   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan input dan output contoh berikut -

Keluaran :
Writing to the file
Enter your name: Zara
Enter your age: 9
Reading from the file
Zara
9

Contoh di atas memanfaatkan fungsi tambahan dari objek cin, seperti fungsi getline () untuk membaca baris dari luar dan fungsi ignore () untuk mengabaikan karakter tambahan yang ditinggalkan oleh pernyataan read sebelumnya.

Penunjuk Posisi File

Baik istream dan ostream menyediakan fungsi anggota untuk memposisikan ulang penunjuk posisi file. Fungsi anggota ini adalah seekg ("seek get") untuk istream dan seekp ("seek put") untuk ostream.

Argumen untuk seekg dan seekp biasanya adalah bilangan bulat panjang. Argumen kedua dapat ditentukan untuk menunjukkan arah pencarian. Arah seek dapat berupa ios :: beg (default) untuk pemosisian relatif terhadap permulaan aliran, ios :: cur untuk pemosisian relatif terhadap posisi saat ini dalam aliran atau ios :: end untuk pemosisian relatif terhadap akhir a aliran.

File-position pointer adalah nilai integer yang menentukan lokasi dalam file sebagai jumlah byte dari lokasi awal file. Beberapa contoh pemosisian penunjuk posisi file "get" adalah -

// position to the nth byte of fileObject (assumes ios::beg)

fileObject.seekg( n );

 

// position n bytes forward in fileObject

fileObject.seekg( n, ios::cur );

 

// position n bytes back from end of fileObject

fileObject.seekg( n, ios::end );

 

// position at end of fileObject

fileObject.seekg( 0, ios::end );

 

 

Contoh Soal :

1.    Pengertian ‘ofstream’ ?

Jawab : Merupakan sebuah tipe data output yang memungkinkan kita untuk melakukan pembuatan dan menulis informasi pada file.

2.    Pengertian ‘ifstream’ ?

Jawab : Merupakan sebuah tipe data input yang memungkinkan kita melakukan pembacaan informasi dari file

3.    Pengertian ‘fstream’ ?

Jawab : Merupakan sebuah tipe data input output file yang memungkinkan kita untuk melakukan kedua hal tersebut, seperti membuat, menulis dan membaca informasi dari file.

4.    Untuk Menjalankan operasi I/O terdapat beberapa kelas yang harus dimasukkan. Sebutkan ?

Jawab : ifstream(Proses Input), ofstream (Proses output), fsstream(proses input/output).

5.    Perhatikan program berikut :

#include <iostream>

            #include <fstream>

      using namespace std;

    int main ( ) {

    ifstream input ;

       input.open ( "D :/COBA.TXT") ;

       if ( ! input ) {

              cout << " File tidak dapat dibuka " << endl;

              return 1;

              }

       char C ;

       while (input) { // selama belum EOF (End Of File)

              input.get (C) ;

              if (input) {

       cout << C; }

       }

       input.close () ;

return 0; }

hasil dari program di atas adalah?

Jawab :

Membaca data pada file COBA.TXT dan menampilkannya pada kode program

Analisis: Karena pada saat kode ini kami mencobanya hanya bertuliskan “ File Tidak Dapat Dibuka “ yang artinya sama saja dengan membaca data dan menampilkannya 

6.    Fungsi input yang menambahkan tanda overloaded operator extraction untuk memasukkan nilai adalah?

Jawab : cin ( )

Analisis : Standar input pada C++ cin menambahkan tanda overloaded operator extraction(>>) pada cin stream.

7.    Pasangan fungsi input / output yang benar adalah

Jawab : scanf ( ) dan cout ( )        

Analisis: Karna scanf () untuk Input dan cout untuk output. Tetapi cout seharusnya dengan cin, dan scanf () hanya bisa berpasangan dengan printf. 

8.    penulisan variable pada fungsi input scanf ( ) yang benar adalah?

Jawab : scanf (“%d” , &a) ;

Analisis :  Karena scanf () akan menginput pada variabelnya jadi dideklarasikan terlebih dahulu jenis variabel nya dengan tanda  kutip lalu koma, tanda & lalu nama variabelnya sendiri setelah itu kurung tutup dan diakhiri titik koma.

9.    Input/output pada file binary digunakan fungsi get ( ), put ( ).

Bentuk Umumnya :

Istream &get (char& ch) ;

Ostream &put (char ch) ;

Jelaskan fungsi bentuk umumnya?

Jawab :

 

Fungsi get ( ) akan membaca sebuah karakter dari stream dan karakter

tersebut akan diletakkan pada variable ch.

Fungsi ini akan mengembalikan reference ke stream jika EOF ditemukan,

maka nilai yang dikembalikan NULL.

Fungsi put ( ) akan meletakkan sebuah karakter ke sutau stream dan akan

mengembalikan reference ke stream.

Untuk membaca dan menulis file binary dalam bentuk blok data dapat

menggunakan fungsi read ( ) dan write 9 )

10.  Di dalam class ios didefenisikan empat buah fungsi untuk melakukan tes terhadap error yang terjadi di dalam stream. Fungsi tersebut adalah?

Jawab : int good();, int eof();, int bad();, int fail();