Contoh Program Managemen TXT File Dengan Borland C++ 5.02

Yaph inilah tugas terkahir buat mata kuliah praktikumku Algoritma Pemrograman dengan Bahasa Pemrograman C++ menggunakan IDE Borland 5.02 yang menyebalkan. Program ini bisa Read, Edit, Delete, Add Data di File TXT. Oke langsung saja yah …

#include <iostream>
#include <fstream>
#include <string>
#include <stdio>
#include <windows>
#include <vector>

using namespace std;

void menuAwal();

int inpmenu;
char tanya;
string baris;
string bacaFile;
string inputBaru;

vector <string> explode(const char& chSparate, const string& strText){
    string next = "";
    vector <string> result;
    for(string::const_iterator it = strText.begin(); it != strText.end(); it++){
        if(*it == chSparate){
            if(next.length() > 0){
                result.push_back(next);
                next = "";
            }
        }else{
            next += *it;
        }
    }
    return result;
}

string& str_replace(const string &search, const string &replace, string &subject){
    string buffer;

    int sealeng = search.length();
    int strleng = subject.length();

    if (sealeng==0)
        return subject;

    for(int i=0, j=0; i<strleng; j=0 ){
        while (i+j<strleng && j<sealeng && subject[i+j]==search[j])
            j++;
        if (j==sealeng){
            buffer.append(replace);
            i+=sealeng;
        }else{
            buffer.append( &subject[i++], 1);
        }
    }
    subject = buffer;
    return subject;
}

void cariBuku(string cariKodeBuku){
    string tampungHasilExplodes;
	vector <string> detailDataBarang;
	vector <string> detailKodeBarang;
	bacaFile = "";
	system("cls");

	cariKodeBuku = "["+cariKodeBuku+"]";

	ifstream db;
    db.open("dataBarang.txt");
	while(!db.eof()){
    	getline(db,baris,'\n');
		bacaFile += baris+"\n";
    }
	db.close();

    detailDataBarang = explode('\n',bacaFile);

	for(size_t i = 0; i < detailDataBarang.size(); i++){
	    if(detailDataBarang[i].find(cariKodeBuku)!=string::npos){
			tampungHasilExplodes += detailDataBarang[i]+"\n ";
		}
	}

    tampungHasilExplodes = str_replace("|","\t",tampungHasilExplodes);
    tampungHasilExplodes = str_replace("=","\t",tampungHasilExplodes);

    cout << "\n -------------------------------------------------" <<endl;
    cout << " "  << tampungHasilExplodes;
    cout << "-------------------------------------------------" <<endl;

    fflush(stdin);
    cout << " Kembali ke Menu Awal ? [y/t] : ";
    cin  >> tanya;
    if(tanya=='y') menuAwal();
    else exit(0);
}

void editBuku(string cariKodeBuku){
    int penanda;
    string tampungExp, tampungBaru, tambahanKarakter;
    string namaBukuBaru, stokBukuBaru, hargaBukuBaru;
	vector <string> detailDataBarang;

	ifstream db;
    db.open("dataBarang.txt");
	while(!db.eof()){
		getline(db,baris,'\n');
		bacaFile += baris+"\n";
    }
	db.close();

    cariKodeBuku = "["+cariKodeBuku+"]";

    if(bacaFile.find(cariKodeBuku)==string::npos){
        cout << "Maaf, buku dengan kode tersebut tidak ada";
        Sleep(1000);
        menuAwal();
    }

    detailDataBarang = explode('\n',bacaFile);

	for(size_t i = 0; i < detailDataBarang.size(); i++){
	    if(detailDataBarang[i].find(cariKodeBuku)!=string::npos){
		    tampungExp += detailDataBarang[i]+"\n";
			penanda = i;
		}
	}

	if(penanda==0 || penanda==detailDataBarang.size()){
        tambahanKarakter = "\n";
    }

    cout << "Nama Buku yang baru : ";
    cin  >> namaBukuBaru;

    cout << "Stok barang yang baru : ";
    cin  >> stokBukuBaru;

    cout << "Harga barang yang baru : Rp ";
    cin  >> hargaBukuBaru;

    tampungBaru = cariKodeBuku+"="+namaBukuBaru+"|"+stokBukuBaru+"|"+
    					hargaBukuBaru+"|"+tambahanKarakter;

    tampungExp = "";
    for(size_t i = 0; i < detailDataBarang.size(); i++){
	    if(penanda==i){
		    tampungExp += tampungBaru;
			continue;
		}else{
			tampungExp += detailDataBarang[i]+"\n";
		}
	}
    tampungExp = tampungExp.substr(0,(tampungExp.length() - 2));

	ofstream fl;
    fl.open("dataBarang.txt",ios::trunc);
	fl << tampungExp;
	fl.close();

    cout << "Buku berhasil dirubah. Terima Kasih";
    Sleep(1000);
    menuAwal();
}

void inputDataBarang(){
	system("cls");
    string kodeBarang, namaBarang, stokBarang, hargaBarang;
    cout << "Masukkan Kode Barang : ";
    cin  >> kodeBarang;
    bacaFile = "";
    ifstream db;
    db.open("dataBarang.txt");
    while(!db.eof()){
    	 getline(db,baris,'\n');
       bacaFile += baris+"\n";
    }
    db.close();

    if(bacaFile.find(kodeBarang)!=string::npos){
        cout << "Maaf, barang dengan kode tersebut sudah ada sebelumnya";
        Sleep(1000);
        menuAwal();
    }

    cout << "\nMasukkan Nama Barang : ";
    cin  >> namaBarang;
    cout << "Masukkan Jumlah Stok Barang : ";
    cin  >> stokBarang;
    cout << "Masukkan Harga Barang : ";
    cin  >> hargaBarang;
    inputBaru = "["+kodeBarang+"]="+namaBarang+"|"+stokBarang+"|"+hargaBarang+"|";

    ofstream fl;
    fl.open("dataBarang.txt");
    fl << bacaFile;
    fl << inputBaru;
    fl.close();
    cout << "Barang baru berhasil ditambahkan." << endl;
    Sleep(1000);
    menuAwal();
}

void hapusDataBarang(string cariKodeBuku){
    string tampungExp;
    vector <string> detailDataBarang;

    bacaFile = "";
    system("cls");
    ifstream db;
    db.open("dataBarang.txt");
    while(!db.eof()){
    	getline(db,baris,'\n');
		bacaFile += baris+"\n";
    }
    db.close();

    detailDataBarang = explode('\n',bacaFile);
    cariKodeBuku = "["+cariKodeBuku+"]";

    for(size_t i = 0; i < detailDataBarang.size(); i++) {
        if(detailDataBarang[i].substr(0,4)!=cariKodeBuku){
            tampungExp += detailDataBarang[i]+"\n";
        }
    }
    tampungExp = tampungExp.substr(0,(tampungExp.length() - 2));

    ofstream fl;
    fl.open("dataBarang.txt",ios::trunc);
    fl << tampungExp;
    fl.close();
    cout << "Barang telah berhasil dihapus." << endl;
    Sleep(1000);
    menuAwal();
}

void laporan(){
    bacaFile = "";
    system("cls");
    ifstream db;
    db.open("dataBarang.txt");
    while(!db.eof()){
    	getline(db,baris,'\n');
		bacaFile += baris+"\n";
	}
    db.close();
    cout << "Kode\tNama Barang\tStok\tHarga Barang" <<endl;
    cout << "--------------------------------------------" <<endl;
    bacaFile = str_replace("|","\t",bacaFile);
    bacaFile = str_replace("=","\t",bacaFile);
    cout << bacaFile;
    cout << "--------------------------------------------\n" <<endl;
    fflush(stdin);
    cout << "Kembali ke Menu Awal ? [y/t] : ";
    cin  >> tanya;
    if(tanya=='y') menuAwal();
    else system("exit");
    system("pause");
}

void menuAwal(){
    system("cls");
    cout << "+-----------------------------------+"<< endl;
    cout << "| Silakan Pilih Menu                |"<< endl;
    cout << "+-----------------------------------+"<< endl;
    cout << "| 1. Lihat Data Barang              |"<< endl;
    cout << "| 2. Cari Data Barang               |"<< endl;
    cout << "| 3. Input Data Barang              |"<< endl;
    cout << "| 4. Edit Data Barang               |"<< endl;
    cout << "| 5. Hapus Data Barang              |"<< endl;
    cout << "+-----------------------------------+"<< endl;
    cout << "\nPilihan Anda : ";
    fflush(stdin);
    cin >> inpmenu;
    cout << endl;

    if(inpmenu==1){
        laporan();
	}else if(inpmenu==2){
        string cariKodeBarang;
        cout << "Masukkan kode barang : ";
        cin  >> cariKodeBarang;
        cariBuku(cariKodeBarang);
	}else if(inpmenu==3){
        inputDataBarang();
    }else if(inpmenu==4){
		string cariKodeBarang;
        cout << "Masukkan kode barang : ";
        cin  >> cariKodeBarang;
        editBuku(cariKodeBarang);
    }else if(inpmenu==5){
        string cariKodeBarang;
        cout << "Masukkan kode barang : ";
        cin  >> cariKodeBarang;
        hapusDataBarang(cariKodeBarang);
    }else{
        cout << "Terima Kasih";
        Sleep(1000);
        system("exit");
    }
    system("cls");
}

int main(){
    menuAwal();
    return EXIT_SUCCESS;
}

Untuk contoh isi file dataBarang.txt, silahkan lihat dibawah ini :

[01]=Keyboard|100|5000|
[02]=Sikat Gigi|100|5000|
[03]=Sabun Mandi|100|15000|
[04]=Obat Nyamuk|100|25000|
[05]=Minyal Goreng|100|35000|
[06]=Gula Pasir|100|45000|
[07]=Garam Dapur|100|55000|
[08]=Susu Kental|100|65000|
[09]=Kopi Bubuk|100|75000|
[10]=Teh Celup|100|85000|

Download & Install Visual Studio Express Secara Offline

Thread kali ini membahas mengenai bagaimana caranya kita bisa install visual studio express secara offline setelah kita download file instalasi untuk visual studionya masing – masing. Karena aku pernah pengen install Visual Basic 2008 Express, nah aku dapat download dari websitenya Microsoft, itu hanya berupa file launcher yang berguna untuk mendownload dan menginstall aplikasi yang berhubungan dari Internet, kemudian install otomatis setelah proses download selesai. Nah setelah proses instalasi selesai, file mentah untuk setup aplikasinya dihapus, jadi kita ndak punya file mentahnya jika kita ingin install di komputer lain. Saat proses instalasi tadi juga kita butuh koneksi internet, lumayan menyusahkan bukan ?
Nah, semoga setelah membaca thread ini bisa mengatasi problem diatas :), oke silahkan ikuti langkah – langkah berikut dibawah ini :

  1. Pertama – tama, silahka kalian download file launcher atau bootstrap sesuai dengan aplikasi yang kalian inginkan (VB, VC++, C#, J# atau lainnya) di link berikut http://www.microsoft.com/express/Downloads/#Visual_Studio_2008_Express_Downloads
  2. Setelah selesai download, buka direktori dimana kalian menyimpan hasil download file tadi. Setelah itu, jika di komputer kalian sudah ada WinRar, tinggal Klik Kanan file hasil download tadi, lalu pilih Extract Here. Jika belum mempunyai winrar, bisa juga pake aplikasi Archieve sejenis.
  3. Setelah file download tadi diekstrak, hasil ekstraknya akan menghasilkan beberapa file. Dan diantara file tersebut, ada satu file dengan nama baseline.dat, silahkan buka file tersebut dengan Notepad atau editor text sejenis
  4. Setelah file tersebut terbuka, cari text dengan kata kunci [vs_setup.dll], nah dibawah bagian text tersebut, kalian bisa menemukan text URL parameter fwlink. Pokoknya, stelah ketemua text pencarian tadi, scroll aja kebawah nanti akan nemu fwlink tadi. Lihat gambar dibawah ini untuk lebih jelasnya :

    vbsetup

  5. Setelah kalian udah nemukan URL fwlink-nya, buka browser lalu ketikkan link http://go.microsoft.com/fwlink/?LinkId=119373
    NB : ?LinkId=119373 silahkan ganti dengan LinkId yang ada di file yang sedang kalian buka.
  6. Setelah kalian membuka link tersebut, secara otomatis akan mendowload file instalasi yang sesuai dengan yang kalian pilih, filenya kurang lebih sekitar 50 Mb. Silahkan download dan simpan.
  7. Setelah proses download berhasil, lakukan hal yang sama dengan langkah kedua. Yaitu Klik Kanan file hasil download kedua berukuran kurang lebih 50Mb an tadi, lalu pilih Extract Here.
  8. Kemudian, buka Command Prompt / DOS, dan masuklah ke direktori dimana kalian menyimpan hasil extraksi dari file hasil download kedua tadi melalui DOS yang sedang kalian buka.
  9. Setelah berada di direktori yang saya maksud, ketikkan command berikut :
    msiexec /i vs_setup.msi vsextui=1 addlocal=all reboot=reallysuppress
  10. Setelah itu, otomatis proses Instalasi berjalan. Dan silahkan tunggu hingga proses instalasi selesai, maka program siap digunakan dan kalian juga masih punya file setup / mentah-annya. Jadi bisa diinstall di komputer lain kan … tidak perlu download ulang.
    Oh ya, tidak kalah pentingnya, jika di komputer kalian belum terpasang .Net Framework yang sesuai, silahkan install terlebih dahulu sebelum melakukan langkah ke 8. Oke selesai sampai disini, semoga bisa bermanfaat 😀 :mrgreen:

Repair SideBar Windows 7 Yang Crash Karena Install Suatu Gadget

Aku termasuk pemakai Win 7, aku suka download Themes & Gadget yang melalui link yang tersedia di windows Personalize dan Gadget dimana akan dilemparkan ke webpage microsoft untuk download Themes maupun Gadget tersebut. Nah kemaren, aku sempat download sebuah gadget, trus aku install di sidebar win 7 ku, entah kenapa gara – gara install gadget baru tersebut, sidebar ku crashed, error dan tidak bisa dijalankan programnya. Sudah berbagai cara aku coba, mulai dari Turn On / Off Component Windows di Windows Uninstall Programs, edit Registry sampai download sidebar default yang mana tujuanku ingin aku overwrite, tetep gagal.

Akhirnya aku nemu sebuah tutorial yang menyarankan untuk edit file settings.ini di folder data instalasi sidebarnya.

  1. Oke, pertama klik Start -> Kemudian di bagian menu Run, ketikkan %localappdata%\Microsoft\Windows Sidebar, kemudian tekan Enter.
  2. Setelah itu, otomatis kalian akan masuk ke sebuah direktori Windows Sidebar. Disana terdapat file dengan nama Settings.ini, buka file tersebut dengan Notepad atau editor sejenisnya.
  3. Di dalam file tersebut terdapat section – section tiap gadget yang pernah diinstall. Pilih section di bagian gadget yang membuat sidebar kalian crashed, kemudian hapus section beserta subnya. Lebih jelasnya perhatikan gambar dibawah ini :
    section gadget sidebar

    section gadget sidebar

  4. Kemudian simpan kembali file Settings.ini yang sudah diedit tersebut.
  5. Kembali ke desktop, kemudian cobalah untuk memanggil aplikasi Gadget seperti biasa dengan Klik Kana -> Pilih Gadgets. Dan lihat sidebar kalian sudah berjalan dengan lancar. Masalah terseleseikan 🙂

Oke, sekian semoga thread ini bisa membantu :mrgreen:

Simple itu menyeleseikan masalah

Ceritanya, disuatu perusahaan sabun terkemuka, terjadi komplain secara besar-besaran dari divisi Quality Control, sang manager merasa mesin produksinya sudah tidak bisa diandalkan lagi dalam membungkus sabun-sabun kedalam kardusnya.

Masalahnya, kardus-kardus kecil sabun tersebut tidak ada isinya, dan perusahaan kesulitan untuk menentukan mana kardus yang ada sabunnya atau yang kosong.

Diadakanlah rapat dadakan diperusahaan tersebut, Big boss berkata, “gimana ini?, apa ada yang bisa kasih solusi?”, tidak lama kemudian sang manager 1 menyarankan untuk membeli mesin sensor yang harganya 5 milyar rupiah, lantas sang big boss keberatan dan meminta apakah ada solusi lain, lalu si manager 2 memberikan masukan kepada sang bigboss dengan menyarankan mesin sensor yang lebih murah  sekitar 500 juta, si Bos masih belum puas dengan jawaban dari para eksekutifnya ini.

Dengan nada putus asa, si boss bertanya lagi, apakah ada solusi yang lebih murah?, tidak lama kemudian sang Office Boy memberanikan diri, “Saya punya pak”, seketika semua orang diruangan tercengang, lantas si boss bertanya “kamu perlu uang berapa?”, si office boy menjawab “cukup 50 ribu pak”, semua orang dibuat tambah tercengang dan tertawa.

Seketika si boss memberikan uang itu kepada office boy, dan office boy kembali dengan membawa Kipas angin.

Artikel SIP & Menarik ini aku dapat dari : http://arizane.wordpress.com/2010/09/15/simpel-itu-yang-menyelesaikan-masalah/

Resume Praktikum Algoritma Pemrograman (C++)

Setelah bersusah payah mengikuti Praktikum Algoritma Pemrograman, dengan berburu Tanda Tangan, dan menghadapi bermacam – macam jenis manusia (Asisten Lab). Sengaja dipost, jaga – jaga kalau suatu saat ada yang butuh, kan bisa buat referensi 🙂 …
Untuk lebih jelasnya, silahkan download saja file hasil Praktikum selama 4 Pertemuan, berisikan FLowchart dan Contoh Programnya, tidak lupa beserta laporannya :mrgreen: di link berikut : http://www.ziddu.com/download/12671208/Praktikum-AlPro.zip.html
Tambahan ni,,, kemungkinan file yang aku upload ini ada passwordnya, jika ya coba masukkan rendramm2.wordpress.com sebagai passwordnya 😀

Fungsi validasi HTML Form – Javascript

Untuk dapat memakai fungsi validasi ini dibutuhkan beberapa fungsi tambahan seperti fungsi ucwords(), startsWith() dan isEmail(), sedangkan fungsi pemanggilnya adalah validasi(). Berikut source code javascriptnya :

function validasi(delimiter,elementId){
	var formElement;
	var jumlahArray;
	var i;
	var formName = "";
	var messageAlert = "";

	formElement = elementId.split(delimiter);

	for(i=0;i<formElement.length;i++){
		if(formElement[i].startsWith("email")){
			if(document.getElementById(formElement[i]).value == ""){
				formName = formElement[i];
				messageAlert = "Form Email masih kosong";
				break;
			}else if(!isEmail(document.getElementById(formElement[i]).value)){
				formName = formElement[i];
				messageAlert = "Format Email Anda kurang tepat";
				break;
			}
		}else if(document.getElementById(formElement[i]).value == ""){
			formName = formElement[i];
			messageAlert = 'Maaf, silahkan isi form '+ucwords(formName);
			break;
		}
	}

	if(formName != ""){
		document.getElementById(formName).focus();
		alert(messageAlert);
		return false;
	}else{
		return true;
	}
}

Diatas hanyalah fungsi pemanggil, untuk mendapatkan fungsi pendukungnya silahkan download source file aslinya disini. Untuk implementasi dari fungsi tersebut diatas silahkan lihat source berikut :

<form method="post" action="">
	<table border="0" cellpadding="1" cellspacing="1">
		<tr>
			<td width="15%">Nama Lengkap</td>
			<td align="left"><input type="text" name="nama" id="nama lengkap"></td>
		</tr>
		<tr>
			<td align="left">Email</td>
			<td align="left"><input type="text" name="email" id="email"></td>
		</tr>
		<tr>
			<td align="left">Alamat Lengkap</td>
			<td align="left"><textarea name="address" id="alamat"></textarea></td>
		</tr>
		<tr>
			<td align="left" style="border:0px;">&nbsp;</td>
			<td align="left" style="border:0px;">
				<input type="submit" name="register" onclick="return validasiDaftar(',','nama lengkap,email,alamat')" value="Daftar Sekarang">
			</td>
		</tr>
	</table>
</form>

Single Linked List Head & Tail – C++ ( Struktur Data )

//index.cpp

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <singleLHT.cpp>

using namespace std;

int main(){
    int databaru,pil;
    char j,w;
    do{
		cout<< "berapa nilai yang ingin anda masukkan\n";
		cin>>databaru;
		cout<<"\ndepan(1) atau belakang(2)?\n";
		cin>>pil;
		if(pil==1){
			insertDepan(databaru);
		}else{
			insertBelakang(databaru);
		}
		tampil();
		cout<<"apakah anda ingin memasukkan data (y/t)? ";
		cin>>j;
    }
    while(j=='y');

    do{
		cout<<"hapus depan(1) dan hapus belakang(2)? ";
		cin>>pil;
		if(pil==1){
			hapusDepan();
		}else{
			hapusBelakang();;
		}
		tampil();
		cout<<"apakah anda ingin hapus data (y/t)? ";
		cin>>w;
    }
    while(w=='y');
    getch();
    return 0;
}

Continue reading

Program Random Character C++

Program ini digunakan untuk mendpatkan hasil dari randomisasi character yang diacak dan dikumpulkan menjadi satu ke dalam suatu string / array character. Program ini dibuat menggunakan C++ dan IDE DevCPP, oke berikut source code nya :

#include <iostream>
#include <ctime>

using namespace std;

int main() {
    char hasil[10];
    srand((unsigned) time(NULL));
    const int passLen = 10;
    for (int i = 0; i < passLen; i++) {
        hasil[i] = (char) (rand() % ('z' - '0' + 1) + '0');
    }
    cout << hasil <<endl;
    system("pause");
}

Contoh Program Algoritma Pemrograman C++

Akhirnya bisa posting thread lagi di blog ini :), ya meskipun mungkin bahan postingannya kurang menarik. Cuma ini sebagai catatan digitalku saja dari tugas praktikum yang pernah aku jalani dan sempat membuat puyeng :mrgreen:, di dalam postingan ini terdapat beberapa contoh program algoritma pemrograman yang terbuat dari C++ dengan IDE DevCPP, diantaranya adalah sebagai berikut :

  1. Contoh program menampilkan persegi biner dengan tanda silang / tanda X yang tergambar di tengah persegi bintang C++ tersebut
  2. Contoh program yang menampilkan sebuah segitiga bintang biner C++
  3. Contoh program yang dapat mengkonversi sebuah inputan user menjadi kode ASCII
  4. Program yang menghitung perkalian matriks A dan B dengan ordo yang dinamis
  5. Program konversi waktu, dengan inputan user sebagai nilai awal

Diatas adalah list / daftar program yang akan dibahas di dalam postingan ini, untuk hasil eksekusi tiap program tersebut diatas bisa kalian lihat dibawah ini :

Berikut potongan source code dari semua program yang telah aku sebutkan diatas :

void persegi(){
    int baris, temp;
    cout << "Input batas : ";
    cin >> baris;
    temp = baris;
    for(int i=1; i<=baris; i++){
        for(int j=1; j<=baris; j++){
            if(j==i||j==temp)
                cout << "0 ";
            else
                cout << "1 ";
        }
        temp--;
        cout << endl;
    }
}

void segitiga(){
    int l, k, m = 1;
    cout << "Input batas : ";
    cin  >> l;
    for(int i=1;i<=(l+4);i++){
        if(i%2==0) k = 0; else k = 1;
        m = k;
        for(int j=1;j<=i;j++){
            m++;
            if(i+j<=(l+5)){
                if(m%2==1){
                    cout << "0 ";
                }else{
                    cout << "1 ";
                }
            }
        }
        cout<<endl;
    }
}

Diatas kan cuma potongan sekilas, jika ingin download sourcenya full silahkan download di link Download Contoh Program Algoritma Pemrograman ini