Struktur Data

Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk .....

PUSAT INFORMASI DAN KONSELING REMAJA

PIK Remaja yaitu suatu wadah kegiatan program PKBR (Penyiapan Kehidupan Berkeluarga Bagi Remaja) yang dikelola dari, oleh dan untuk remaja guna memberikan pelayanan informasi dan konseling kesehatan reprodu....

Kamis, 06 April 2017

Manipulasi String Pada C++

1. Fungsi Strcpy

Bentuk umum dari fungsi strcpy() adalah seperti berikut :
char* strcpy(char* Str1, const char* Str2);
Fungsi ini berguna untuk melakukan penyalinan (copy) string dari Str2 ke Str1.
Berikut contoh penggunaannya didalam program.:
#include <iostream> // header
#include <string.h> // header untuk memanggil fungsi-fungsi string
#include <conio.h>
using namespace std;
int main()
{
char Str1[11];
char* Str2;
// Melakukan pengisian nilai pada variable Str2
Str2 = “coba salin”;
// Melakukan penyalinan string dari variabel Str2 ke Str1 
strcpy(Str1,Str2);
cout<<Str2<<endl ;
getch();
} 

2. Fungsi strncpy

Bentuk umum dari fungsi strncpy() adalah seperti berikut :
char* strncpy(char* Str1, const char* Str2, size_n);
Fungsi ini berguna untuk menyalin string sebanyak n karakter dari variabel Str2 ke Str1.
Contoh penggunaannya dalam program adalah sebagai berikut :
#include <iostream> // header
#include <string.h> // header untuk memanggil fungsi-fungsi string
#include <conio.h>
using namespace std;
int main()
{
char Str1[11];
char* Str2;
// Melakukan pengisian nilai pada variable Str2 dan Str1
Str1 = {‘C’,’O’,’N’,’T’,’O’,’H’,’\0′};
Str2 = “coba salin”;
// Melakukan penyalinan string dari variabel Str2 ke Str1
strncpy(Str1,Str2,4);
cout<<Str1<<endl ;
getch();
}

3. Fungsi strdup

Bentuk umum dari fungsi strdup() adalah seperti berikut :
char* strdup(const char* Str);
Fungsi strdup() mirip dengan fungsi strcpy(), yaitu untuk melakukan duplikasi string.
Contoh penggunaannya dalam program adalah sebagai berikut :
#include <iostream> // header
#include <string.h> // header untuk memanggil fungsi-fungsi string
#include <conio.h>
using namespace std;
int main()
{
char* Str1;
char* Str2;
// Melakukan pengisian nilai pada variable Str1
Str1 = “coba duplikasi”;
// Melakukan duplikasi string dari variabel Str1 ke Str2
Str2 = strdup(Str1);
cout<<Str2<<endl;
getch();
}

4. Fungsi strcat

Bentuk umum dari fungsi strcat() adalah seperti berikut :
char* strcat(char* Str1, const char* Str2);
Fungsi ini berguna untuk menggabungkan (concat) string dari Str2 ke posisi akhir dari Str1.
Contoh penggunaannya dalam program adalah sebagai berikut :
#include <iostream> // header
#include <string.h> // header untuk memanggil fungsi-fungsi string
#include <conio.h>
using namespace std;
int main()
{
char Str1[6];
char* Str2;
char* spasi = ” “;
// Melakukan pengisian nilai pada variable Str1 dan Str2
Str1 = {‘c’,’o’,’b’,’a’,’\0′};
Str2 = “Gabungkan”;
//Mnambahkan karakter spasi (‘ ‘) kedalam variabel Str1
strcat(Str1,spasi);
// Melakukan penggabungan string yang terdapat pada Str1 dan Str2
strcat(Str1,Str2);
cout<<Str1<<endl;
getch();
}

5. Fungsi strncat

Bentuk umum dari fungsi strncat() adalah seperti berikut :
char* strcat(char* Str1, const char* Str2, size_n);
Fungsi ini berfungsi untuk menggabungkan n karakter dari variabel Str2 ke posisi akhir dari variabel Str1.
Contoh penggunaannya dalam program adalah sebagai berikut :
#include <iostream> // header
#include <string.h> // header untuk memanggil fungsi-fungsi string
#include <conio.h>
using namespace std;
int main()
{
char Str1[6];
char* Str2;
// Melakukan pengisian nilai pada variable Str1 dan Str2
Str1 = {‘c’,’o’,’b’,’a’,’ ‘,’\0’};
Str2 = “Gabungkan kata-kata”;
//Menggabungkan 6 karakter dari variabel Str2 ke variabel Str1
strncat(Str1,Str2,6);
cout<<Str1<<endl;
getch();
}

6. Fungsi strcmp()

Bentuk umum dari fungsi strcat() adalah seperti berikut :
var_int = strcmp(str1,str1) ;
Fungsi ini digunakan untuk membandingkan string pertama dengan string kedua. Hasil dari fungsi ini bertipe data integer (int). File header yang harus disertakan adalah string.h
Contoh penggunaannya dalam program adalah sebagai berikut :
#include <string.h>
#include <iostream.h>
#include <conio.h>
main( )
{
char a1[ ] = "BELAJAR";
char a2[ ] = "Belajar";
char b1[ ] = "BELAJAR";
clrscr( );
cout<<"Hasil Perbandingan "<<a1<<" dan "<<a2<<"->";
cout<<strcmp(a1,a2)<<endl;
cout<<"Hasil Perbandingan "<<a2<<" dan "<<a2<<"->";
cout<<strcmp(a2,a1) <<endl;
cout<<"Hasil Perbandingan "<<a1<<" dan "<<b1<<"->";
cout<<strcmp(a1,b1) <<endl;
getch( );
}

7. Fungsi strlen

Bentuk umum dari fungsi strlen() adalah seperti berikut :
strlen(str) ;
Fungsi ini digunakan untuk memperoleh banyaknya karakter dalam string. File header yang harus digunakan adalah string.h
Contoh penggunaannya dalam program adalah sebagai berikut :
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
main( )
{
  char huruf[20];
  char pindah[20];
  clrscr( );
  cout<<"Masukkan Sembarang Kata = ";
  gets(huruf);
  cout<<"Panjang Kata Yang Diinputkan = ";
  cout<<strlen(huruf);
  getch( );
}

8. Fungsi starrev

Bentuk umum dari fungsi strrev() adalah seperti berikut : 
strrev(str);
Fungsi strrev() digunakan untuk membalik letak urutan pada string. String urutan paling akhir dipindahkan keurutan paling depan dan seterusnya. File header yang harus disertakan adalah “string.h”.
 Contoh penggunaannya dalam program adalah sebagai berikut :
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
main( )
{
char kata[20];
clrscr();
cout<<"Masukan Sembarang Kata = ";
gets(kata);
strrev(kata);
cout<<"Hasil Perubahan = "<<kata;
getch( );
}

Identitas Penulis :
Nama : Rizal Nur Aprianto
NIM : A710160030
Kelas : A
Prodi : Pendidikan Teknik Informatika

STRUKTUR DATA

  • DASAR TEORI
A.     Pengertian Algoritma & Struktur data
Konsep Pemrograman dalam Sistem Komputer  Sistem adalah suatu kesatuan elemen yang saling berhubungan sehingga membentuk suatu kelompok dalam melaksanakan suatu tujuan pokok yang ditargetkan (Onno W. Purba : 2000 ). Menurut Electronic Data Processing System (EDPS), sebuah sistem komputer memiliki bagian-bagian fungsional yang disebut perangkat keras (hardware), perangkat lunak (software) dan orang yang berinteraksi/user (brainware).
Perangkat lunak (software) adalah program yang berisi kumpulan instruksi untuk melakukan proses pengolahan data. Dari pengertian tersebut, dapat diketahui bahwa sesungguhnya perangkat lunak terdiri dari bagian dinamis yaitu instruksi serta bagian statis yaitu data. Unjuk kerja instruksi berupa perlakuan/behaviour yang dikenakan kepada data. Setelah dikenai instruksi, data akan berubah menjadi data yang bernilai dan tertampil sebagai informasi.

B.      Konsep Umum Algoritma dan Struktur Data 
Algoritma menawarkan suatu metode dalam menyelesaikan sebuah permasalahan. Algoritma diartikan sebagai urutan langkah dalam menyelesaikan masalah secara sistematis dan logis. Pendekatan secara sistematis dan logis tersebut, menjadikan proses penyelesaian masalah terjaga kebenarannya karena algoritma hendaklah benar agar dapat menghasilkan keluaran/solusi yang benar pula.
Data adalah fakta dunia nyata. Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, dan secara keseluruhan menjadikan program secara keseluruhan lebih efisien dan sederhana.

C.      Road Map Algoritma dan Struktur Data
Pembahasan materi Algoritma dan struktur data memerlukan dasar pengetahuan tentang pemrograman. Algoritma dan struktur data diharapkan dapat menumbuhkan kompetensi berupa pengetahuan dan skill dalam memecahkan persoalan dan memetakannya dalam bentuk program.


  • Karakteristik Struktur Data :
  1. Correctness - Struktur Data implementasi harus mengimplementasikan antarmuka dengan benar. 
  2. Time Complexity - Waktu berjalan atau waktu eksekusi operasional dari strukturdata harus sekecil mungkin. 
  3. Space Complexity - Kompleksitas ruang operasi struktur data harus sesedikit mungkin.


  • ARRAY    
Array adalah kumpulan data bertipe sama dan menggunakan nama yang sama pula. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan “subscript”. Subscript berupa bilangan di dalam kurung siku [...]. Melalui subscript inilah masing-masing elemen dapat diakses. 

A.     Array Berdimensi Satu
Array berdimensi satu adalah sekumpulan data/elemen yang disimpan secara berurutan dalam suatu tempat/subscript yang terdiri atas 1 (satu) unsur. Sejumlah data suhu disimpan dalam nama suhu terdiri dari Suhu 1 = 25°, Suhu 2 = 23,5°, Suhu 3 = 21°, Suhu 4 = 26° dan Suhu 5 = 35°  Pendefinisian array meliputi nama array, tipe elemen array dan jumlah elemen array.  Contoh :  Float nilai_mhs [12]; Keterangan : 
1. tipe array : float (bilangan pecah)
2. nama array : nilai_mhs 
3. jumlah elemen array : 12 data, yaitu nilai_mhs[1],   nilai_mhs[2],...., nilai_mhs[12].  

Nilai elemen array dapat dimasukkan melalui keyboard atau dimasukkan saat didefinisikan pada program.  

B.      Array Berdimensi Dua Array berdimensi dua adalah sekumpulan data/elemen yang disimpan secara berurutan dalam suatu tempat/subscript yang terdiri atas 2 (dua) unsur, yaitu baris dan kolom. Array berdimensi dua berarti meiliki dua dimensi data. Contoh sederhana adalah data yang tertulis dalam gambar tabel berikut ini :
Merk Mobil
1994
1995
1996
1997
Honda
35
45
80
120
Daihatsu
100
100
70
101
Suzuki
10
15
20
17
Gambar 2.1 Array Berdimensi 2
Jika dibuat programnya adalah sebagai berikut : 
int data_mobil [3] [4]; 
Keterangan :
1.       baris 1 → baris 3 : menunjukkan merek mobil. 
2.       kolom 1 →  kolom 4 : menunjukkan tahun penjualan.
3.       tipe array : integer (bilangan bulat).
4.       nama array : data_mobil.
5.       jumlah elemen array : [3,4]
6.       [2,3] dibaca : penjualan mobil merek Daihatsu pada tahun 1994 adalah 70 unit.  

C.      Array Sebagai Argumen Fungsi
Array juga dapat berkedudukan sebagi parameter di dalam fungsi. Contoh pendefinisian :  const int MAKS = 5  Int data[MAKS]; Fungsi adalah bagian program yang berisi sejumlah pernyataan tertentu yang dapat dipanggil berulang kali. Tujuan pembuatan fungsi adalah :
1.       Memudahkan dalam mengembangkan program.
2.       Menghemat ukuran program 
Beberapa hal yang harus diperhatikan dalam pembuatan fungsi adalah :
1.       Fungsi menerima masukan yang disebut argumen atau parameter.
2.       Masukan diproses oleh fungsi dan memberikan hasil akhir yang disebut nilai balik (return value).
3.       Agar fungsi dapat dipanggil, fungsi harus dideklarasikan. 

Prototipe
Deklarasi fungsi disebut prototype fungsi yang berupa :
1.       nama fungsi
2.       tipe nilai balik fungsi
3.       jumlah dan tipe argument
4.       serta diakhiri dengan titik koma (;). 

Contoh : 
Long kuadrat(long l) 
dimana menyatakan kuadrat() adalah nama fungsi, long adalah tipe argument, long (kedua) menunjukkan nilai balik yang bertipe long. Void garis()  menyatakan fungsi tanpa nilai balik Pernyataan return digunakan untuk memberikan nilai balik fungsi. Dalam fungsi diatas berarti nilai kuadrat dari argument. Fungsi dengan pernyataan void tidak memberikan nilai balik. Biasanya tidak diakhiri pernyataan return. Jenis variabel dalam kaitannya dengan lingkup fungsi terdapat tiga macam yaitu : variabel otomatis, variabel eksternal dan variabel statis. 
Variabel Lokal (otomatis)
Variabel yang didefinisikan di dalam fungsi disebut variabel local. Variabel ini hanya dikenal dalam fungsi tersebut.
Variabel Global (eksternal)
Variabel yang didefinisikan di bagian luar manapun dari fungsi dan dikenal oleh semua fungsi. Disebut juga variabel global, karena dikenal de semua fungsi.
Variabel Statis
Baik variabel local maupun global dapat berfungsi sebagai variabel statis dengan cara menambahkan pada kedua variabel tersebtu pernyatan static. Kemudian pada kedua variabel tersebtu berlaku hal sebagai berikut :
1.      Jika variabel local berdiri sebagai variabel statis maka variabel tetap hanya dapat diakses pada fungsi yang mendefinisikannya, variabel tidak hilang saat eksekusi fungsi berakhir. Nilainya akan tetap dipertahankan, sehingga akan dikenali pada pemanggilan fungsi untuk tahap berikutnya.
2.      Inisialisasi oleh pemrogram akan dilakukan sekali saja selama program dijalankan. Jika tidak ada inisialisasi secara eksplisit, variabel diisi dengan nol.
3.      Jika variabel eksternal dijadikan sebagai variabel statis, variabel ini dapat diakses oleh semua file yang didefinisikan pada file yang sama dengan variabel eksternal tersebut .
Rekursi  Suatu fungsi dapat memanggil fungsi yang merupakan dirinya sendiri. Misal untuk menghitung Xn. 2.3

  • Struktur
Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan. Sebuah contoh deklarasi struktur adalah sebagai berikut : 
Struct data_mahasiswa 
{
char nim[6];
char nama[100];
int umur; 
} 
Pada contoh tersebut, tampak dideklarasikan sebuah struktur bernama data_mahasiswa yang terdiri dari tiga buah anggota berupa : 
Nim
Nama
Umur
Apabila struktur tersebut telah dideklarasikan, struktur dapat digunakan untuk mendefinisikan suatu variabel, misalnya :  data_mahasiswa mhs1;  merupakan pendefinisian sebuah variabel struktur mhs1 yang bertipe struktur data_mahasiswa.

  • Sorting
Sorting atau pengurutan data adalah salah satu mekanisme pengelolaan data yang sering dipergunakan untuk beragam keperluan. Dengan sorting, seseorang bisa mendapatkan suatu keadaan data yang lebih informatif dan berarti. Terdapat beberapa macam model sorting diantarnya Exchange Sorting, Bubble Sorting dan Insertion Sorting.


Identitas Penulis :
Nama : Rizal Nur Aprianto
NIM : A710160030
Kelas : A
Prodi : Pendidikan Teknik Informatika

Referensi : 
  1. E-Book dari http://www.jakapramana.com/2015/05/download-modul-belajar-algoritma-dan.html
  2. http://www.kapalomen.com/2016/06/konsep-dan-pengertian-struktur-data.html