Ada tools yang cukup bermanfaat di linux untuk mirroring file antar komputer atau antar folder, yaitu RSYNC. Bisa digunakan untuk backup file, update antivirus, update repository dsb.
Konfigurasi Teks
sekedar goresan untuk melawan lupa ....
Senin, 03 Agustus 2009
Share TEMP folder
Share TEMP folder
Share TEMP folder
Kebiasaan yang jelek yang gue temukan di company gue adalah kurang memanfaatkan computer. Satu contoh nih. Mereka masih suka pake USB Flashdrive untuk copy file antar PC. Lucu kan? Udah ada computer yang tersambung jaringan, masih juga untuk nyalin file seperti itu. Hal ini karena strategi MIS lama yang gue rasa culun. Maklum deh karena manager MIS lama bukan orang IT. Cuman menang persodaraan aja ma salah satu direktor. Jadi asal jalan aja
Share TEMP folder
Kebiasaan yang jelek yang gue temukan di company gue adalah kurang memanfaatkan computer. Satu contoh nih. Mereka masih suka pake USB Flashdrive untuk copy file antar PC. Lucu kan? Udah ada computer yang tersambung jaringan, masih juga untuk nyalin file seperti itu. Hal ini karena strategi MIS lama yang gue rasa culun. Maklum deh karena manager MIS lama bukan orang IT. Cuman menang persodaraan aja ma salah satu direktor. Jadi asal jalan aja
Jumat, 05 Juni 2009
TugasOO_3
Salam sahabat
kita mulai langsung dari Workspace dan perhatikan Bulatan hitam pada gambar.
telah kita ketahui , jika kita membuat aplikasi dengan menggunakan Microsoft Visual C++ file yang kita perhatikan berupa ..Dlg.cpp dan ..Dlg.h . ini jika kita membuat aplikasi Dialog
kita mulai langsung dari Workspace dan perhatikan Bulatan hitam pada gambar.
telah kita ketahui , jika kita membuat aplikasi dengan menggunakan Microsoft Visual C++ file yang kita perhatikan berupa ..Dlg.cpp dan ..Dlg.h . ini jika kita membuat aplikasi Dialog
Rabu, 08 April 2009
Strategi Migrasi Windows ke Linux
Strategi Migrasi Windows ke Linux
Cukup menarik untuk dibaca dan semoga bisa diimplementasikan
Sumber: Rusmanto(Pendiri Nurul Fikri dan Direksi di Majalah InfoLinux)
Date: Sat, 22 Mar 2008 08:40:46 +0700
From: Rusmanto
To: adnan basalamah
Cc: Onno W. Purbo, dodi maryanto
Subject: Re: building awareness open source
Pak Adnan,
Saya belum secara langsung menangani proses migrasi, hanya pernah mengoordinasi teman-teman yang akan bertugas untuk melakukan migrasi. Sayangnya, hampir semua migrasi itu karena keputusan direksi, sehingga kami tidak tahu apakah pengguna itu terpaksa atau tidak. …. Contoh: Samudera Indonesia, Konimex, dan RS Pertamina Jaya.
Saya beberapa kali melakukan liputan (lihat langsung dan wawancara), keluhan migrasi hanya terjadi di beberapa minggu pertama, karena perbedaan menu dan cara. Lebih banyak kasus di perpindahan dari MS Office ke OpenOffice.
Untuk aplikasi Internet hanya terjadi pada proses pemindahan data email, biasanya sedikit masalah dari outlook ke thunderbird. Sedangkan browser dan messenger (teks saja) tidak ada masalah.
Cerita di atas itu untuk kasus migrasi total secara bersama sistem operasi dan aplikasi. Di sebuah perusahaan (jumlah pc sekitar 400 set), proses migrasi dilakukan bertahap, yaitu tahun pertama hanya aplikasi (semua aplikasi open source dipilih yg tersedia di Windows dan Linux). Tahun kedua migrasi dari Windows ke Linux.
Berikut ini rangkuman hasil pengamatan saya di proses migrasi yang tidak menakutkan di beberapa perusahaan:
Buat surat yang ditandatangi pemimpin puncak, isinya keputusan migrasi dengan jaminan tidak akan menyulitkan pengguna selama proses dijalankan sesuai prosedur, seperti backup data sebelum install Linux, install dilakukan oleh tim IT, user tinggal menggunakan, dsb.
Sebagai pelengkap surat (no.1), buat daftar perbedaan di windows dan Linux, MS Offfice dan OpenOffice, penggunaan email, dll. (a) Misalnya untuk menyimpan data di Windows adalah di folder … dan di Linux adalah di folder …, untuk mencetak di Windows bla-bla-bla dan di Linux bla-bla-bla. (b) Daftar perbedaan itu dilaminating dan diberikan ke tiap user, bagus lagi dijelaskan dalam sebuah acara, misal seminar. (c) Bagus dilengkapi poster yg di tempel di papan-papan pengumuman.
Pastikan user tidak melakukan sendiri instalasi program. Kalau user diminta install sendiri, siapkan repository lokal dan petunjuk yang mudah untuk install sendiri.
Tugaskan beberapa orang yang standby di telp atau messenger untuk menjawab pertanyaan pengguna. Modalnya orang ini harus sabar.
Ini tips dari konimex dan samudera indonesia, jangan beri peluang user menginstal kembali Windows, meskipun itu dual boot, kecuali darurat dan setelah melalui assessment bahwa tugas dia memang belum dapat digantikan sementara ini oleh Linux, misalnya pembuat gambar dg AutoCAD (qCAD bisa tapi terbatas), software pajak e-SPT (teman-teman masih gagal menggunakan wine), dll.
Cukup menarik untuk dibaca dan semoga bisa diimplementasikan
Sumber: Rusmanto(Pendiri Nurul Fikri dan Direksi di Majalah InfoLinux)
Date: Sat, 22 Mar 2008 08:40:46 +0700
From: Rusmanto
To: adnan basalamah
Cc: Onno W. Purbo
Subject: Re: building awareness open source
Pak Adnan,
Saya belum secara langsung menangani proses migrasi, hanya pernah mengoordinasi teman-teman yang akan bertugas untuk melakukan migrasi. Sayangnya, hampir semua migrasi itu karena keputusan direksi, sehingga kami tidak tahu apakah pengguna itu terpaksa atau tidak. …. Contoh: Samudera Indonesia, Konimex, dan RS Pertamina Jaya.
Saya beberapa kali melakukan liputan (lihat langsung dan wawancara), keluhan migrasi hanya terjadi di beberapa minggu pertama, karena perbedaan menu dan cara. Lebih banyak kasus di perpindahan dari MS Office ke OpenOffice.
Untuk aplikasi Internet hanya terjadi pada proses pemindahan data email, biasanya sedikit masalah dari outlook ke thunderbird. Sedangkan browser dan messenger (teks saja) tidak ada masalah.
Cerita di atas itu untuk kasus migrasi total secara bersama sistem operasi dan aplikasi. Di sebuah perusahaan (jumlah pc sekitar 400 set), proses migrasi dilakukan bertahap, yaitu tahun pertama hanya aplikasi (semua aplikasi open source dipilih yg tersedia di Windows dan Linux). Tahun kedua migrasi dari Windows ke Linux.
Berikut ini rangkuman hasil pengamatan saya di proses migrasi yang tidak menakutkan di beberapa perusahaan:
Buat surat yang ditandatangi pemimpin puncak, isinya keputusan migrasi dengan jaminan tidak akan menyulitkan pengguna selama proses dijalankan sesuai prosedur, seperti backup data sebelum install Linux, install dilakukan oleh tim IT, user tinggal menggunakan, dsb.
Sebagai pelengkap surat (no.1), buat daftar perbedaan di windows dan Linux, MS Offfice dan OpenOffice, penggunaan email, dll. (a) Misalnya untuk menyimpan data di Windows adalah di folder … dan di Linux adalah di folder …, untuk mencetak di Windows bla-bla-bla dan di Linux bla-bla-bla. (b) Daftar perbedaan itu dilaminating dan diberikan ke tiap user, bagus lagi dijelaskan dalam sebuah acara, misal seminar. (c) Bagus dilengkapi poster yg di tempel di papan-papan pengumuman.
Pastikan user tidak melakukan sendiri instalasi program. Kalau user diminta install sendiri, siapkan repository lokal dan petunjuk yang mudah untuk install sendiri.
Tugaskan beberapa orang yang standby di telp atau messenger untuk menjawab pertanyaan pengguna. Modalnya orang ini harus sabar.
Ini tips dari konimex dan samudera indonesia, jangan beri peluang user menginstal kembali Windows, meskipun itu dual boot, kecuali darurat dan setelah melalui assessment bahwa tugas dia memang belum dapat digantikan sementara ini oleh Linux, misalnya pembuat gambar dg AutoCAD (qCAD bisa tapi terbatas), software pajak e-SPT (teman-teman masih gagal menggunakan wine), dll.
Jumat, 06 Maret 2009
Menambah Hardisc pada Linux Debian
Setelah Hardisk di pasang pada PC dan terbaca Ex, sebagai /dev/hdb1
sekarang kita tinggal membuat Direktory pada /mnt , Ext : nama folder
barunya *datacenter
ssh -l uyut 192.168.1.241
*/sudo //mkdir /mnt/datacenter
sudo mount /dev/hdb1 /mnt/datacenter/
*tapi sebelumnya*
/ sudo chmod -R 777 /mnt/datacenter/
sudo chown -R root.uyut /mnt/datacenter//
Jangan lupa tambahkan fstab dengan :
/ sudo nano /etc/fstab/
//dev/sda4 /media/detanto ext3
defaults,errors=remount-ro,users,user_xattr,user 0 0/
selesai deh
sudah bisa di pakai ardisk barunya
sekarang tinggal edit Congifure Sambanya, agar dapat di gunakan sebagai
file sharing
sekarang kita tinggal membuat Direktory pada /mnt , Ext : nama folder
barunya *datacenter
ssh -l uyut 192.168.1.241
*/sudo //mkdir /mnt/datacenter
sudo mount /dev/hdb1 /mnt/datacenter/
*tapi sebelumnya*
/ sudo chmod -R 777 /mnt/datacenter/
sudo chown -R root.uyut /mnt/datacenter//
Jangan lupa tambahkan fstab dengan :
/ sudo nano /etc/fstab/
//dev/sda4 /media/detanto ext3
defaults,errors=remount-ro,users,user_xattr,user 0 0/
selesai deh
sudah bisa di pakai ardisk barunya
sekarang tinggal edit Congifure Sambanya, agar dapat di gunakan sebagai
file sharing
Rabu, 25 Februari 2009
Install Anti Virus pada Linux
*Instal Anti Virus pada Linux*
clamav-0.94.2.tar.gz
hidaya@hidaya:~$ tar xvzf : buat tar ball file .tar.gz = Extrak file
(clamav-0.94.2)
hidaya@hidaya:~$ cd clamav-0.94.2
hidaya@hidaya:~$ sudo ./configure
/ * cek ada atau tidak error , biasanya error karena ada packed yang
belum terinstal/
clamav-0.94.2.tar.gz
hidaya@hidaya:~$ tar xvzf : buat tar ball file .tar.gz = Extrak file
(clamav-0.94.2)
hidaya@hidaya:~$ cd clamav-0.94.2
hidaya@hidaya:~$ sudo ./configure
/ * cek ada atau tidak error , biasanya error karena ada packed yang
belum terinstal/
Selasa, 24 Februari 2009
Re: [Nyemplung Linux] setting tanggal,jam di linux liwat terminal
detanto wrote:
syntaxnya :
date set="STRING TANGGAL"|
atau
date -s "STRING TANGGAL"|
Contohnya set tanggal baru ke 24 february 2009 11:20:00, ketik ini ke
terminal :
# sudo date set="24 FEBRUARY 2009 11:26:00"
atau
# sudo date -s "24 FEBRUARY 2009 11:26:00"
untuk setting waktu saja, formatnya adalah :
# date +%T -s "hh:mm:dd"|
disadur dari
http://www.cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt/
Posting oleh detanto ke Nyemplung Linux
http://nyemplunglinux.blogspot.com/2009/02/setting-tanggaljam-di-linux-liwat.html>
pada 2/24/2009 11:20:00 AM
syntaxnya :
date set="STRING TANGGAL"|
atau
date -s "STRING TANGGAL"|
Contohnya set tanggal baru ke 24 february 2009 11:20:00, ketik ini ke
terminal :
# sudo date set="24 FEBRUARY 2009 11:26:00"
atau
# sudo date -s "24 FEBRUARY 2009 11:26:00"
untuk setting waktu saja, formatnya adalah :
# date +%T -s "hh:mm:dd"|
disadur dari
http://www.cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt/
Posting oleh detanto ke Nyemplung Linux
http://nyemplunglinux.blogspot.com/2009/02/setting-tanggaljam-di-linux-liwat.html>
pada 2/24/2009 11:20:00 AM
Jumat, 23 Januari 2009
Program Dialog listProduk
Dalam kesempatan Latihan kali ini , coba buat ulang Aplikasi Dialog
dengan nama ListProduk

1. IDC_KODEBARANG (m_Kodebarang)
2. IDC_NAMABARANG (m_NamaBarang)
3. IDC_SPESIFIKASI (m_Spesifikasi)
4. IDC_TYPE (m_Type)
5. IDC_MERK (m_Merk)
6. IDC_SATUAN (m_Satuan)
7. IDC_PACKING (m_Packing)
8. IDC_HARGAUNIT (m_HargaUnit)
9. IDC_TANGGALPRICE (m_TanggalPrice)
10 IDC_NOTE (m_Note)
11. IDC_CARIKODE void :: OnCarikode()
12. IDC_HASIL (m_Hasil)
13. IDC_LISTBARANG (m_ListBarang)
14. IDC_SIMPAN void ::OnSimpan()
15. IDC_HAPUS void ::OnHapus()
16. IDC_TAMBAH void ::OnTambah()
*#include <C:\\Programer\\ERS\\Umum\\Fungsi.h>
#include <C:\\Programer\\ERS\\Umum\\Definisi.h>
typedef struct
{
char kodebarang[15];
char namabarang[64];
char spesifikasi[128];
char type[128] ;
char merk ;
char satuan;
char packing;
long double hargaunit;
CTime tanggalprice;
char note[256];
int filefoto;
long foto;
} ST_PRODUK;
ST_PRODUK far *po;
ST_PRODUK far *op;
.h files*
#include <C:\\...\\Umum\\Foto.h>
long m_pRekord;
long m_pMakRekord;
long m_pAwal;
long m_pLangkah;
CFoto m_Video;
int m_pFileFoto;
long m_pRekFoto;
long m_pMakFoto;
char m_pMerk;
char m_pSatuan;
char m_pPacking;
void mfCreatNew() ;
void mfListBarang() ;
void mfTayangEditBarang() ;
*BOOL CListProdukDlg::OnInitDialog()*
{
CDialog::OnInitDialog();
m_ListBarang.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
m_ListBarang.InsertColumn( 0, "No", LVCFMT_LEFT, 30);
m_ListBarang.InsertColumn( 1, "kodebarang", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 2, "namabarang", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 3, "spesifikasi", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 4, "type", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 5, "merk", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 6, "satuan", LVCFMT_LEFT, 80);
m_ListBarang.InsertColumn( 7, "packing", LVCFMT_LEFT, 80);
m_ListBarang.InsertColumn( 8, "hargaunit", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 9, "tanggalprice", LVCFMT_LEFT, 80);
m_ListBarang.InsertColumn( 10, "filefoto", LVCFMT_LEFT, 80);
m_ListBarang.InsertColumn( 11, "foto", LVCFMT_LEFT, 80);
// m_pRekord = 0 ;
m_pAwal = 0 ;
// m_pMakRekord = 0 ;
// m_pLangkah = 26 ;
mfListBarang() ;
// mfCreatNew () ;
}
// Edit Box
*void CListProdukDlg::OnChangeKodebarang() *
{
GetDlgItemText (IDC_KODEBARANG, m_KodeBarang);
}
//ComboBox
*void CListProdukDlg::OnSelendokMerk() *
{
CComboBox* pCmb = (CComboBox*)GetDlgItem(IDC_MERK);
m_pMerk = pCmb->GetCurSel();
}
*void CListProdukDlg::mfCreatNew() *
{
char str [128];
FILE * arus ;
if (AfxMessageBox ("Yakin, Creat Data Pras?", MB_OKCANCEL )!=IDOK )
return;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "w+b", _SH_DENYNO );
for( int i=0; i<10 ; i++)
{
strcpy (po->kodebarang, "Kode");
strcpy (po->namabarang, "Nama Barang") ;
strcpy (po->spesifikasi, "Spesifikasi") ;
strcpy (po->type, "Type") ;
po->merk = 0 ;
po->satuan = 0 ;
po->packing = 0 ;
po->hargaunit = 0 ;
po->tanggalprice = ((CFungsi*)AfxGetApp())->mfSekarang();
strcpy (po->note, "note") ;
po->filefoto = 0 ;
po->foto = 0 ;
fwrite (po, sizeof (ST_PRODUK),1,arus );
}
fclose (arus);
free (po);
// mfTayangEditPerhitungan();
AfxMessageBox ("Selesai");
}
*void CListProdukDlg::mfTayangEditBarang() *
{
char str[32];
FILE *arus;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "r+b", _SH_DENYNO );
fseek( arus, m_pRekord*sizeof(ST_PRODUK), SEEK_SET );
fread( po, sizeof(ST_PRODUK), 1, arus );
m_KodeBarang = po->kodebarang; SetDlgItemText (IDC_KODEBARANG,
m_KodeBarang);
m_NamaBarang = po->namabarang; SetDlgItemText (IDC_NAMABARANG,
m_NamaBarang);
m_Spesifikasi= po->spesifikasi; SetDlgItemText (IDC_SPESIFIKASI,
m_Spesifikasi);
m_Type = po->type; SetDlgItemText (IDC_TYPE, m_Type);
m_pMerk = po->merk; m_Merk.SetCurSel(m_pMerk);
m_pSatuan= po->satuan; m_Satuan.SetCurSel(m_pSatuan);
m_pPacking = po->packing; m_Packing.SetCurSel(m_pPacking);
sprintf( str, "%22.f",((po->hargaunit)), str);
SetDlgItemText (IDC_HARGAUNIT, str);
m_TanggalPrice = po->tanggalprice;
m_Note = po->note; SetDlgItemText (IDC_NOTE, m_Note);
fclose( arus );
free( po);
}
*void CListProdukDlg::mfListBarang() *
{
char str[128];
int i;
FILE *arus;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "r+b", _SH_DENYNO );
m_pMakRekord =
(long)(_filelength(fileno(arus)))/(long)(sizeof(ST_PRODUK));
// m_ListBarang.DeleteAllItems();
// for( i=0 ; i<m_pLangkah ; i++ ) m_ListBarang.InsertItem(0, "");
m_ListBarang.DeleteAllItems();
for( i=0 ; i<m_pMakRekord ; i++ ) m_ListBarang.InsertItem(0, "");
fseek( arus, m_pAwal*sizeof(ST_PRODUK), SEEK_SET );
i=0;
while(1)
// for( i=0 ; i<m_pLangkah ; i++ )
{
if( fread( po, sizeof(ST_PRODUK), 1, arus )!=1 ) break;
sprintf (str, "%d", i+m_pAwal);
m_ListBarang.SetItem(i, 0, LVIF_TEXT, str, -1, 0, 0, 0);
m_ListBarang.SetItem(i, 1, LVIF_TEXT, po->kodebarang, -1, 0, 0, 0);
m_ListBarang.SetItem(i, 2, LVIF_TEXT, po->namabarang, -1, 0, 0, 0);
m_ListBarang.SetItem(i, 3, LVIF_TEXT, po->spesifikasi, -1, 0, 0, 0);
m_ListBarang.SetItem(i, 4, LVIF_TEXT, po->type, -1, 0, 0, 0);
m_ListBarang.SetItem (i,5, LVIF_TEXT,
((CFungsi*)AfxGetApp())->mfKonversiMerk (po->merk), -1, 0, 0, 0);
m_ListBarang.SetItem (i,6, LVIF_TEXT,
((CFungsi*)AfxGetApp())->mfKonversiSatuan(po->satuan), -1, 0, 0, 0);
m_ListBarang.SetItem (i,7, LVIF_TEXT,
((CFungsi*)AfxGetApp())->mfKonversiSatuan(po->packing), -1, 0, 0, 0);
((CFungsi*)AfxGetApp())->mfFormatRupiah(po->hargaunit, str);
m_ListBarang.SetItem(i, 8, LVIF_TEXT, str, -1, 0, 0, 0);
sprintf (str, "%s", po->tanggalprice.Format("%d-%m-%Y"));
m_ListBarang.SetItem(i, 9, LVIF_TEXT, str, -1, 0, 0, 0);
i++;
}
fclose( arus );
free( po );
}
*void CListProdukDlg::OnClickListbarang(NMHDR* pNMHDR, LRESULT* pResult) *
{
char sss[32];
NM_LISTVIEW *pmnListView = (NM_LISTVIEW *)pNMHDR;
int i = pmnListView->iItem;
m_ListBarang.GetItemText( i, 0, sss, 8 );
m_pRekord = atoi( sss ) ;
// mfTayangEditBarang();
*pResult = 0;
}
*void CListProdukDlg::OnCarikode() *
{
char str[128], isi[256];
long rek = 0;
FILE *arus;
strcpy( str, m_KodeBarang );
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "a+b", _SH_DENYNO );
m_Hasil.ResetContent();
while( 1 )
{
if( fread( po, sizeof(ST_PRODUK), 1, arus )!=1 ) break;
if( strstr( _strupr(po->kodebarang), _strupr(str))!=0 )
{
sprintf( isi, "%02ld - %s - %s - %s - %s ", rek+1,
po->kodebarang, po->namabarang, po->spesifikasi, po->type);
m_Hasil.AddString( isi );
}
rek++;
}
fclose( arus );
free( po );
}
*void CListProdukDlg::OnSelchangeHasil() *
{
char str[128];
int pos;
long rek;
CSize cs;
cs.cx = 0;
;
pos = m_Hasil.GetCurSel();
m_Hasil.GetText( pos, str );
str[6] = '\0';
m_pRekord = atol( str )-1;
mfTayangEditBarang();
// Menayangkan data pokok
// m_pAwal = m_pRekord;
// mfListBarang();
}
*void CListProdukDlg::OnSimpan() *
{
FILE *arus;
int pan;
char str[32];
int i;
if( (strlen (m_KodeBarang)==0) || (strlen (m_NamaBarang)==0) )
{
AfxMessageBox( "Pengisian Tidak Boleh Kosong" );
// mfTayangEditKosong ();
GetDlgItem(IDC_KODEBARANG)->SetFocus();
return;
}
if (AfxMessageBox ("Yakin Akan Menyimpan Data ?", MB_OKCANCEL
)!=IDOK ) return;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "r+b", _SH_DENYNO );
fseek( arus, m_pRekord*sizeof(ST_PRODUK), SEEK_SET );
fread( po, sizeof(ST_PRODUK), 1, arus );
// strcpy (po->kodebarang, m_KodeBarang);
strcpy (po->namabarang, m_NamaBarang) ;
strcpy (po->spesifikasi, m_Spesifikasi) ;
strcpy (po->type, m_Type) ;
po->merk = m_pMerk ;
po->satuan = m_pSatuan ;
po->packing = m_pPacking ;
strcpy( str, m_HargaUnit);
pan = strlen (str);
for( i=0 ; i<pan ; i++ ) if( str[i]==',' ) str[i] = '.';
po->hargaunit = (double long) atof (str);
po->tanggalprice = m_TanggalPrice;
//strcpy( po->tanggalprice, m_TanggalPrice );
strcpy (po->note, m_Note) ;
po->filefoto = m_pFileFoto;
po->foto = m_pRekFoto ;
fseek(arus, m_pRekord*sizeof(ST_PRODUK),SEEK_SET);
fwrite(po,sizeof(ST_PRODUK),1,arus);
fclose( arus );
free ( po );
mfListBarang();
// mfTayangListSlipT();
// mfTayangKosong();
}
*void CListProdukDlg::OnHapus() *
{
int i = 0;
FILE *arus, *dest;
if( (strlen(m_KodeBarang)==0) || (strlen(m_NamaBarang)==0) )
{
AfxMessageBox( "Data Tidak Boleh Kosong" );
return;
}
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "r+b", _SH_DENYNO );
dest = fopen( NC_SEMENTARA, "w+b" );
while( 1 )
{
if( fread( po, sizeof(ST_PRODUK), 1, arus )!=1 ) break;
if( i!=m_pRekord )
fwrite( po, sizeof(ST_PRODUK), 1, dest );
i++;
}
fclose( arus );
fclose( dest );
free( po );
remove(NC_PRODUK);
rename(NC_SEMENTARA,NC_PRODUK);
// mfTayangKosong();
mfListBarang();
}
*void CListProdukDlg::OnTambah() *
{
FILE *arus;
int pan;
char str[32];
int i;
if( (strlen(m_KodeBarang)==0) || (strlen(m_NamaBarang)==0) )
{
AfxMessageBox( "Data Tidak Boleh Kosong" );
return;
}
if (AfxMessageBox ("Yakin akan menambah data ?", MB_OKCANCEL )!=IDOK
) return;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "a+b", _SH_DENYNO );
if( strlen( m_KodeBarang)==0 )
{
AfxMessageBox( "Kode Barang Harus di isi" );
GetDlgItem(IDC_KODEBARANG)->SetFocus();
return;
}
while (1)
{
if (fread(po, sizeof(ST_PRODUK),1, arus)!=1) break;
if ((strcmp(po->kodebarang, m_KodeBarang) == 0 ) )
{
AfxMessageBox ("Data Sudah Ada ");
goto LANJUT ;
}
}
strcpy (po->kodebarang, m_KodeBarang);
strcpy (po->namabarang, m_NamaBarang) ;
strcpy (po->spesifikasi, m_Spesifikasi) ;
strcpy (po->type, m_Type) ;
po->merk = m_pMerk ;
po->satuan = m_pSatuan ;
po->packing = m_pPacking ;
strcpy( str, m_HargaUnit);
pan = strlen (str);
for( i=0 ; i<pan ; i++ ) if( str[i]==',' ) str[i] = '.';
po->hargaunit = (double long) atof (str);
po->tanggalprice = m_TanggalPrice;
strcpy (po->note, m_Note) ;
po->filefoto = 0;
po->foto = 0;
fwrite( po, sizeof(ST_PRODUK), 1, arus );
LANJUT :
fclose( arus );
free( po );
mfListBarang();
}
*void CListProdukDlg::OnAwaldata() *
{
m_pRekord = 0;
char str[32];
sprintf( str, "%ld", m_pRekord );
SetDlgItemText( IDC_NOMORREKORDDATA, str );
// mfListPegawai();
mfTayangEditBarang();
}
*void CListProdukDlg::OnSebelumcepatdata() *
{
m_pRekord -= 1;
if( m_pRekord<0 ) m_pRekord = 0;
char str[32];
sprintf( str, "%ld", m_pRekord );
SetDlgItemText( IDC_NOMORREKORDDATA, str );
// mfListPegawai();
mfTayangEditBarang();
}
*void CListProdukDlg::OnSesudahcepatdata() *
{
m_pRekord += 1;
if( m_pRekord>m_pMakRekord-m_pLangkah ) m_pRekord =
m_pMakRekord-m_pLangkah;
char str[32];
sprintf( str, "%ld", m_pRekord );
SetDlgItemText( IDC_NOMORREKORDDATA, str );
// mfListPegawai();
mfTayangEditBarang();
}
*void CListProdukDlg::OnChangeNomorrekorddata() *
{
m_NomorRekordData = (long) GetDlgItemInt (IDC_NOMORREKORDDATA);
}
*void CListProdukDlg::OnKerekordlistkaryawan() *
{
m_pRekord = m_NomorRekordData;
char str[32];
sprintf( str, "%ld", m_pRekord );
SetDlgItemText( IDC_NOMORREKORDDATA, str );
mfTayangEditBarang();
}
dengan nama ListProduk
1. IDC_KODEBARANG (m_Kodebarang)
2. IDC_NAMABARANG (m_NamaBarang)
3. IDC_SPESIFIKASI (m_Spesifikasi)
4. IDC_TYPE (m_Type)
5. IDC_MERK (m_Merk)
6. IDC_SATUAN (m_Satuan)
7. IDC_PACKING (m_Packing)
8. IDC_HARGAUNIT (m_HargaUnit)
9. IDC_TANGGALPRICE (m_TanggalPrice)
10 IDC_NOTE (m_Note)
11. IDC_CARIKODE void :: OnCarikode()
12. IDC_HASIL (m_Hasil)
13. IDC_LISTBARANG (m_ListBarang)
14. IDC_SIMPAN void ::OnSimpan()
15. IDC_HAPUS void ::OnHapus()
16. IDC_TAMBAH void ::OnTambah()
*#include <C:\\Programer\\ERS\\Umum\\Fungsi.h>
#include <C:\\Programer\\ERS\\Umum\\Definisi.h>
typedef struct
{
char kodebarang[15];
char namabarang[64];
char spesifikasi[128];
char type[128] ;
char merk ;
char satuan;
char packing;
long double hargaunit;
CTime tanggalprice;
char note[256];
int filefoto;
long foto;
} ST_PRODUK;
ST_PRODUK far *po;
ST_PRODUK far *op;
.h files*
#include <C:\\...\\Umum\\Foto.h>
long m_pRekord;
long m_pMakRekord;
long m_pAwal;
long m_pLangkah;
CFoto m_Video;
int m_pFileFoto;
long m_pRekFoto;
long m_pMakFoto;
char m_pMerk;
char m_pSatuan;
char m_pPacking;
void mfCreatNew() ;
void mfListBarang() ;
void mfTayangEditBarang() ;
*BOOL CListProdukDlg::OnInitDialog()*
{
CDialog::OnInitDialog();
m_ListBarang.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
m_ListBarang.InsertColumn( 0, "No", LVCFMT_LEFT, 30);
m_ListBarang.InsertColumn( 1, "kodebarang", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 2, "namabarang", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 3, "spesifikasi", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 4, "type", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 5, "merk", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 6, "satuan", LVCFMT_LEFT, 80);
m_ListBarang.InsertColumn( 7, "packing", LVCFMT_LEFT, 80);
m_ListBarang.InsertColumn( 8, "hargaunit", LVCFMT_LEFT, 100);
m_ListBarang.InsertColumn( 9, "tanggalprice", LVCFMT_LEFT, 80);
m_ListBarang.InsertColumn( 10, "filefoto", LVCFMT_LEFT, 80);
m_ListBarang.InsertColumn( 11, "foto", LVCFMT_LEFT, 80);
// m_pRekord = 0 ;
m_pAwal = 0 ;
// m_pMakRekord = 0 ;
// m_pLangkah = 26 ;
mfListBarang() ;
// mfCreatNew () ;
}
// Edit Box
*void CListProdukDlg::OnChangeKodebarang() *
{
GetDlgItemText (IDC_KODEBARANG, m_KodeBarang);
}
//ComboBox
*void CListProdukDlg::OnSelendokMerk() *
{
CComboBox* pCmb = (CComboBox*)GetDlgItem(IDC_MERK);
m_pMerk = pCmb->GetCurSel();
}
*void CListProdukDlg::mfCreatNew() *
{
char str [128];
FILE * arus ;
if (AfxMessageBox ("Yakin, Creat Data Pras?", MB_OKCANCEL )!=IDOK )
return;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "w+b", _SH_DENYNO );
for( int i=0; i<10 ; i++)
{
strcpy (po->kodebarang, "Kode");
strcpy (po->namabarang, "Nama Barang") ;
strcpy (po->spesifikasi, "Spesifikasi") ;
strcpy (po->type, "Type") ;
po->merk = 0 ;
po->satuan = 0 ;
po->packing = 0 ;
po->hargaunit = 0 ;
po->tanggalprice = ((CFungsi*)AfxGetApp())->mfSekarang();
strcpy (po->note, "note") ;
po->filefoto = 0 ;
po->foto = 0 ;
fwrite (po, sizeof (ST_PRODUK),1,arus );
}
fclose (arus);
free (po);
// mfTayangEditPerhitungan();
AfxMessageBox ("Selesai");
}
*void CListProdukDlg::mfTayangEditBarang() *
{
char str[32];
FILE *arus;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "r+b", _SH_DENYNO );
fseek( arus, m_pRekord*sizeof(ST_PRODUK), SEEK_SET );
fread( po, sizeof(ST_PRODUK), 1, arus );
m_KodeBarang = po->kodebarang; SetDlgItemText (IDC_KODEBARANG,
m_KodeBarang);
m_NamaBarang = po->namabarang; SetDlgItemText (IDC_NAMABARANG,
m_NamaBarang);
m_Spesifikasi= po->spesifikasi; SetDlgItemText (IDC_SPESIFIKASI,
m_Spesifikasi);
m_Type = po->type; SetDlgItemText (IDC_TYPE, m_Type);
m_pMerk = po->merk; m_Merk.SetCurSel(m_pMerk);
m_pSatuan= po->satuan; m_Satuan.SetCurSel(m_pSatuan);
m_pPacking = po->packing; m_Packing.SetCurSel(m_pPacking);
sprintf( str, "%22.f",((po->hargaunit)), str);
SetDlgItemText (IDC_HARGAUNIT, str);
m_TanggalPrice = po->tanggalprice;
m_Note = po->note; SetDlgItemText (IDC_NOTE, m_Note);
fclose( arus );
free( po);
}
*void CListProdukDlg::mfListBarang() *
{
char str[128];
int i;
FILE *arus;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "r+b", _SH_DENYNO );
m_pMakRekord =
(long)(_filelength(fileno(arus)))/(long)(sizeof(ST_PRODUK));
// m_ListBarang.DeleteAllItems();
// for( i=0 ; i<m_pLangkah ; i++ ) m_ListBarang.InsertItem(0, "");
m_ListBarang.DeleteAllItems();
for( i=0 ; i<m_pMakRekord ; i++ ) m_ListBarang.InsertItem(0, "");
fseek( arus, m_pAwal*sizeof(ST_PRODUK), SEEK_SET );
i=0;
while(1)
// for( i=0 ; i<m_pLangkah ; i++ )
{
if( fread( po, sizeof(ST_PRODUK), 1, arus )!=1 ) break;
sprintf (str, "%d", i+m_pAwal);
m_ListBarang.SetItem(i, 0, LVIF_TEXT, str, -1, 0, 0, 0);
m_ListBarang.SetItem(i, 1, LVIF_TEXT, po->kodebarang, -1, 0, 0, 0);
m_ListBarang.SetItem(i, 2, LVIF_TEXT, po->namabarang, -1, 0, 0, 0);
m_ListBarang.SetItem(i, 3, LVIF_TEXT, po->spesifikasi, -1, 0, 0, 0);
m_ListBarang.SetItem(i, 4, LVIF_TEXT, po->type, -1, 0, 0, 0);
m_ListBarang.SetItem (i,5, LVIF_TEXT,
((CFungsi*)AfxGetApp())->mfKonversiMerk (po->merk), -1, 0, 0, 0);
m_ListBarang.SetItem (i,6, LVIF_TEXT,
((CFungsi*)AfxGetApp())->mfKonversiSatuan(po->satuan), -1, 0, 0, 0);
m_ListBarang.SetItem (i,7, LVIF_TEXT,
((CFungsi*)AfxGetApp())->mfKonversiSatuan(po->packing), -1, 0, 0, 0);
((CFungsi*)AfxGetApp())->mfFormatRupiah(po->hargaunit, str);
m_ListBarang.SetItem(i, 8, LVIF_TEXT, str, -1, 0, 0, 0);
sprintf (str, "%s", po->tanggalprice.Format("%d-%m-%Y"));
m_ListBarang.SetItem(i, 9, LVIF_TEXT, str, -1, 0, 0, 0);
i++;
}
fclose( arus );
free( po );
}
*void CListProdukDlg::OnClickListbarang(NMHDR* pNMHDR, LRESULT* pResult) *
{
char sss[32];
NM_LISTVIEW *pmnListView = (NM_LISTVIEW *)pNMHDR;
int i = pmnListView->iItem;
m_ListBarang.GetItemText( i, 0, sss, 8 );
m_pRekord = atoi( sss ) ;
// mfTayangEditBarang();
*pResult = 0;
}
*void CListProdukDlg::OnCarikode() *
{
char str[128], isi[256];
long rek = 0;
FILE *arus;
strcpy( str, m_KodeBarang );
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "a+b", _SH_DENYNO );
m_Hasil.ResetContent();
while( 1 )
{
if( fread( po, sizeof(ST_PRODUK), 1, arus )!=1 ) break;
if( strstr( _strupr(po->kodebarang), _strupr(str))!=0 )
{
sprintf( isi, "%02ld - %s - %s - %s - %s ", rek+1,
po->kodebarang, po->namabarang, po->spesifikasi, po->type);
m_Hasil.AddString( isi );
}
rek++;
}
fclose( arus );
free( po );
}
*void CListProdukDlg::OnSelchangeHasil() *
{
char str[128];
int pos;
long rek;
CSize cs;
cs.cx = 0;
;
pos = m_Hasil.GetCurSel();
m_Hasil.GetText( pos, str );
str[6] = '\0';
m_pRekord = atol( str )-1;
mfTayangEditBarang();
// Menayangkan data pokok
// m_pAwal = m_pRekord;
// mfListBarang();
}
*void CListProdukDlg::OnSimpan() *
{
FILE *arus;
int pan;
char str[32];
int i;
if( (strlen (m_KodeBarang)==0) || (strlen (m_NamaBarang)==0) )
{
AfxMessageBox( "Pengisian Tidak Boleh Kosong" );
// mfTayangEditKosong ();
GetDlgItem(IDC_KODEBARANG)->SetFocus();
return;
}
if (AfxMessageBox ("Yakin Akan Menyimpan Data ?", MB_OKCANCEL
)!=IDOK ) return;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "r+b", _SH_DENYNO );
fseek( arus, m_pRekord*sizeof(ST_PRODUK), SEEK_SET );
fread( po, sizeof(ST_PRODUK), 1, arus );
// strcpy (po->kodebarang, m_KodeBarang);
strcpy (po->namabarang, m_NamaBarang) ;
strcpy (po->spesifikasi, m_Spesifikasi) ;
strcpy (po->type, m_Type) ;
po->merk = m_pMerk ;
po->satuan = m_pSatuan ;
po->packing = m_pPacking ;
strcpy( str, m_HargaUnit);
pan = strlen (str);
for( i=0 ; i<pan ; i++ ) if( str[i]==',' ) str[i] = '.';
po->hargaunit = (double long) atof (str);
po->tanggalprice = m_TanggalPrice;
//strcpy( po->tanggalprice, m_TanggalPrice );
strcpy (po->note, m_Note) ;
po->filefoto = m_pFileFoto;
po->foto = m_pRekFoto ;
fseek(arus, m_pRekord*sizeof(ST_PRODUK),SEEK_SET);
fwrite(po,sizeof(ST_PRODUK),1,arus);
fclose( arus );
free ( po );
mfListBarang();
// mfTayangListSlipT();
// mfTayangKosong();
}
*void CListProdukDlg::OnHapus() *
{
int i = 0;
FILE *arus, *dest;
if( (strlen(m_KodeBarang)==0) || (strlen(m_NamaBarang)==0) )
{
AfxMessageBox( "Data Tidak Boleh Kosong" );
return;
}
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "r+b", _SH_DENYNO );
dest = fopen( NC_SEMENTARA, "w+b" );
while( 1 )
{
if( fread( po, sizeof(ST_PRODUK), 1, arus )!=1 ) break;
if( i!=m_pRekord )
fwrite( po, sizeof(ST_PRODUK), 1, dest );
i++;
}
fclose( arus );
fclose( dest );
free( po );
remove(NC_PRODUK);
rename(NC_SEMENTARA,NC_PRODUK);
// mfTayangKosong();
mfListBarang();
}
*void CListProdukDlg::OnTambah() *
{
FILE *arus;
int pan;
char str[32];
int i;
if( (strlen(m_KodeBarang)==0) || (strlen(m_NamaBarang)==0) )
{
AfxMessageBox( "Data Tidak Boleh Kosong" );
return;
}
if (AfxMessageBox ("Yakin akan menambah data ?", MB_OKCANCEL )!=IDOK
) return;
if(( po = (ST_PRODUK*)malloc(sizeof(ST_PRODUK))) == NULL ) exit(-1);
arus = _fsopen( NC_PRODUK, "a+b", _SH_DENYNO );
if( strlen( m_KodeBarang)==0 )
{
AfxMessageBox( "Kode Barang Harus di isi" );
GetDlgItem(IDC_KODEBARANG)->SetFocus();
return;
}
while (1)
{
if (fread(po, sizeof(ST_PRODUK),1, arus)!=1) break;
if ((strcmp(po->kodebarang, m_KodeBarang) == 0 ) )
{
AfxMessageBox ("Data Sudah Ada ");
goto LANJUT ;
}
}
strcpy (po->kodebarang, m_KodeBarang);
strcpy (po->namabarang, m_NamaBarang) ;
strcpy (po->spesifikasi, m_Spesifikasi) ;
strcpy (po->type, m_Type) ;
po->merk = m_pMerk ;
po->satuan = m_pSatuan ;
po->packing = m_pPacking ;
strcpy( str, m_HargaUnit);
pan = strlen (str);
for( i=0 ; i<pan ; i++ ) if( str[i]==',' ) str[i] = '.';
po->hargaunit = (double long) atof (str);
po->tanggalprice = m_TanggalPrice;
strcpy (po->note, m_Note) ;
po->filefoto = 0;
po->foto = 0;
fwrite( po, sizeof(ST_PRODUK), 1, arus );
LANJUT :
fclose( arus );
free( po );
mfListBarang();
}
*void CListProdukDlg::OnAwaldata() *
{
m_pRekord = 0;
char str[32];
sprintf( str, "%ld", m_pRekord );
SetDlgItemText( IDC_NOMORREKORDDATA, str );
// mfListPegawai();
mfTayangEditBarang();
}
*void CListProdukDlg::OnSebelumcepatdata() *
{
m_pRekord -= 1;
if( m_pRekord<0 ) m_pRekord = 0;
char str[32];
sprintf( str, "%ld", m_pRekord );
SetDlgItemText( IDC_NOMORREKORDDATA, str );
// mfListPegawai();
mfTayangEditBarang();
}
*void CListProdukDlg::OnSesudahcepatdata() *
{
m_pRekord += 1;
if( m_pRekord>m_pMakRekord-m_pLangkah ) m_pRekord =
m_pMakRekord-m_pLangkah;
char str[32];
sprintf( str, "%ld", m_pRekord );
SetDlgItemText( IDC_NOMORREKORDDATA, str );
// mfListPegawai();
mfTayangEditBarang();
}
*void CListProdukDlg::OnChangeNomorrekorddata() *
{
m_NomorRekordData = (long) GetDlgItemInt (IDC_NOMORREKORDDATA);
}
*void CListProdukDlg::OnKerekordlistkaryawan() *
{
m_pRekord = m_NomorRekordData;
char str[32];
sprintf( str, "%ld", m_pRekord );
SetDlgItemText( IDC_NOMORREKORDDATA, str );
mfTayangEditBarang();
}
Langganan:
Postingan (Atom)