20 November 2016

Satu Tahun Di Tulungagung

Tidak terasa sudah satu tahun saya bertugas di Tulungagung. Mengerjakan implementasi proyek yang tak kunjung selesai yang awalnya ditarget oleh kantor 2 bulan sudah harus beres :D. Ada beberapa hal yang membuat saya betah berada disini.

30 July 2016

Fill Data To a Different Table Database

Sometimes we have to be able to fill the data in a different database tables. For example, the data in the table in the database that is now being used accidentally deleted, this is one of the terrible things that could happen to a programmer, to overcome it we can use the database backup to restore the data, although not all data can be restored , but a minimum of 90% or 95% of the data can be restored if we have a database backup, but otherwise it would be difficult to overcome, or even can not be at all: D. 

To fill the data in different tables database in Sql Server 2008, code is essentially as follows: 

Insert Into [database name]. [Dbo]. [Table Name] 
Select * From [database name]. [Dbo]. [ The table name] 

Example: 
Insert Into RunningDatabase.dbo.Patient 
Select * From BackupDatabase.dbo.Patient

29 July 2016

How To Execute a Stored Procedure in Sql Server 2008

Sometimes there are moments when we have to reexecute a Stored Procedure in SQL Server, for example due to an error on the line before the Stored Procedure executed that causes the data that should be inserted through the Stored Procedure be entered. Let's say this happened in the case which led to the registration module registration fails. One way to do this is by executing back Stored Procedure that have not been executed, but of course before must be identified first Stored Procedures are not being executed. The easiest way to execute a Stored Procedure is to use strored Execute feature in SQL Server Management Studio.

1. Right-click in the Object Explorer, select Execute Stored Procedure



2. Fill in the value for each parameter.


3. Click OK, SQL Server Management stuido will immediately generate the code to execute Stored Procedures complete with pre-loaded parameter value already filled out before us and the code will be directly executed

23 July 2016

Implementasi SIMRS di RSUD Tulungagung

Assalamualaikum

Pada postingan kali ini penulis ingin berbagi foto-foto ketika penulis melakukan implementasi SIMRS modul Pendaftaran Rawat Jalan plus Bridging BPJS di RSUD Tulungagung pada hari kedua. Berikut foto-fotonya.








SQL Server 2008 Membuat Query Update Menggunakan Query Designer

SQL Server 2008 memiliki fitur Query Designer, fitur ini digunakan untuk membuat query secara visual. Dengan menggunakan fitur ini pembuatan sebuah query akan lebih mudah dan lebih cepat. Pada tulisan kali ini penulis akan memberikan contoh bagaimana membuat sebuah query update menggunakan Query Designer. Query yang akan penulis buat adalah query untuk melakukan update pada sebuah tabel yang mana value updatenya diambil dari tabel lain. Pada contoh ini tabel yang akan diupdate adalah tabel Pasien dan value updatenya diambil dari tabel tbPasien. Field yang akan diupdate pada tabel Pasien adalah NoIdentitas dan Field sumber value dari tabel tbPasien adalah cNoKTPSIM. Berikut langkah-langkahnya.

1. Klik kanan pada query editor, pilih Query Designer.



2. Pada window Add Table, pilih tabel yang akan diupdate dan tabel yang menjadi sumber valuenya


3. Hubungkan primary key kedua tabel tersebut, kemudian klik kanan pada area yang kosong, kemudian pilih Change Type->Update



4. Pada window update table pilih tabel yang akan diupdate valuenya


5. Kemudian centang field NoIdentitas pada tabel Pasien, kemudian ketik pada kolom New Value dengan cNoKTPSIM


6. Klik OK. Setelah itu akan muncul query update di query editor





10 June 2016

Kenapa saya sangat suka komputer?

Saya tidak begitu yakin kenapa saya sangat suka komputer. Tapi sejak kecil saya sudah tertarik dengan hal-hal yang berbau teknologi, apalagi dengan komputer. Setiap kali ada iklan mengenai komputer, setiap menonton film yang berbau teknologi terutama yanga ada hubungannya dengan komputer saya merasa sangat tertarik. Ada perasaan yang berbeda ketika saya melihat komputer. Sepertinya saya sudah jatuh cinta dengan komputer sejak kecil. Tapi saya tidak tahu alasannya kenapa saya bisa suka dengan komputer.

Ketika kelas 6 saya diminta ayah saya untuk kursus bahasa inggris. Saya sempat menolak karena saya inginnya kursus komputer. Tapi orangtua saya berhasil membujuk saya, kata mereka, "Komputer itu didalamnya pake bahasa inggris, kalau kamu ingin bisa komputer kamu harus bisa bahasa inggris dulu". Akhirnya saya mau untuk kursus bahasa inggris terlebih dahulu. Kebetulan di tempat kursus saya selain ada kursus bahasa inggris juga ada kursus komputer. Setiap kali istirahat saya selalu melihat di jendela menonton orang-orang yang kursus komputer, sambil membayangkan saya berada di posisi mereka, memegang benda yang sangat saya sukai, walaupun hanya menghayal tapi itu sangat menyenangkan. Setiap kali pulang kursus, saya selalu merengek minta dibelikan komputer ke Ibu saya, tapi pada waktu itu harga komputer masih mahal, dan ibu saya masih belum bisa membelikannya.

Menjelang lulus SMP saya sempat bingung apakah mau melanjutkan ke SMA atau SMK. Kalau saya inginnya masuk SMK, agar belajarnya bisa fokus pada satu kemampuan, karena SMK memang ditujukan utnuk mendidik siswanya agar punya kemampuan khusus di bidang tertentu, tidak seperti SMA, yang walaupun sudah ada pembagian seperti Jurusan IPS, IPA, Bahasa dan lain-lain, tapi itu masih "Ngambang". Akhirnya Ayah saya memasukkan saya ke SMKN 4 Bandung, saat masuk SMK ini lah saya pertama kali dibelikan komputer oleh orangtua saya, walaupun komputer bekas, tapi saya sangat bahagia. Saya masuk jurusan Rekayasa Perangkat Lunak. Saya mulai tahu bahwa dunia komputer itu sangat luas. Di SMKN 4 ini lah saya mulai belajar yang namanya bahasa pemrograman untuk membuat program komputer. 4 tahun saya sekolah di SMKN 4 Bandung, tapi saya masih bingung kenapa saya bisa sangat suka dengan komputer.

Setelah lulus dari SMKN 4 Bandung, saya tidak langsung kuliah karena tidak punya biaya untuk kuliah. Saya menganggur dulu satu tahun, setelah itu saya masuk Universitas Bale Bandung(UNIBBA) jurusan Teknik Informatika, saya kuliah 4 tahun disini dan masih tetap belum menemukan jawaban kenapa saya suka dengan komputer. Setelah lulus dari SMKN 4 bandung, saya langsung melamar kerja, setelah melamar ke beberapa tempat akhinya saya diterima di Jasamedika Saranatama sebagai Programmer VB 6.0, ketika wawancara terakhir orang yg mewawancarai saya menanyakan kepada saya kenapa saya menyukai komputer, dan lagi-lagi saya tidak bisa menjawabnya.

Pada waktu hampir satu tahun bekerja di Jasamedika, saya menemukan semacam kesenangan ketika membuat sebuah program, lebih tepatnya saat melakukan debugging, rasanya seperti menjadi detektif, mencari siapa tersangka pembunuhan dan memecahkan kasus. Hal itu benar-benar menyenangkan karena saya juga selain suka komputer sangat suka dengan teka-teki dan memecahkan misteri, teka-teki dan misteri selalu membuat saya tertantang untuk memecahkannya. Setelah menyadari itu, ketika ditanya kenapa suka dengan komputer saya akan menjawab, karena dengan komputer saya bisa membuat program komputer, dan dalam proses membuat program tersebut, banyak sekali teka-teki dan misteri yang harus dipecahkan.

08 June 2016

VB 6.0, Split

Split digunakan untuk memisahkan string berdasarkan tanda pemisah yang telah ditentukan. String-string yang dipisahkan, masing-masing disimpan dalam suatu elemen array, banyaknya elemen array yang dihasilkan tergantung berapa banyak string yang dipisahkan. Contoh penggunaan split
Dim arrTmp() As String
Dim i As Integer

Private Sub Command1_Click()
    Label1.Caption = ""

    arrTmp = Split(Text1.Text, ";") 'Tanda titik koma digunakan sebagai tanda untuk memisahkan string

    For i = LBound(arrTmp) To UBound(arrTmp)
        Label1.Caption = Label1.Caption & "" & arrTmp(i) & vbCrLf
    Next i
    
End Sub

15 March 2016

Input di Cell Flexgrid




Dim baris, kolom As Integer 'Untuk menyimpan informasi baris dan kolom yang dipilih user
Dim i, j As Integer 'Untuk keperluan looping
    
Private Sub cbTes_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        'Isi kolom flexgrid sesuai isi teks combo yang dipilih
        Call isiFlexGrid
        
        'Combo dihide dulu
        cbTes.Visible = False
        
        'Jika baris dan kolom yang dipilih adalah baris dan kolom yang terakhir
        If flexTes.Row = flexTes.Rows - 1 And flexTes.Col = flexTes.Cols - 1 Then
            'Cek, apakah ada kolom yang belum terisi
            For i = 1 To flexTes.Col
                If flexTes.TextMatrix(flexTes.Row, i) = "" Then Exit Sub 'Jika ada kolom yang belum terisi, maka jangan buat baris baru
            Next i
            
            'Buat baris baru
            flexTes.Rows = flexTes.Rows + 1
            
            'Pindah fokus ke baris yang baru
            flexTes.Row = flexTes.Row + 1
            
            'Pindah fokus ke kolom pada baris yang baru
            flexTes.Col = 1
            
            'Fungsi untuk seolah-olah tombol panah bawah keyboard ditekan
            'Ini berguna ketika baris flexgrid sudah mencapai batas bawah flexgrid, maka baris paling atas seolah-olah akan dihide
            'sehingga posisi baris yang baru akan dinaikkan agar lebih kelihatan
            SendKeys "{DOWN}"
                    
        'Jika kolom yang dipilih adalah kolom yang terakhir tetapi barisnya bukan baris terakhir(baris-baris sebelum baris yang terakhir)
        ElseIf flexTes.Col = flexTes.Cols - 1 And flexTes.Row < flexTes.Rows - 1 Then
            'Pindah ke baris berikutnya(tidak membuat baris baru, tetapi pindah ke baris berikutnya)
            flexTes.Row = flexTes.Row + 1
            
            'Pindah ke kolom berikutnya
            flexTes.Col = 1
        
        Else
            'Pindah ke kolom berikutnya
            flexTes.Col = flexTes.Col + 1
        End If
        
        
    End If
End Sub


Private Sub flexTes_KeyDown(KeyCode As Integer, Shift As Integer)
    'Jika ditekan tombol ennter
    If KeyCode = 13 Then
        'Tampilkan combobox
        Call tampilCombo
        
    'Jika ditekan tombol delete
    ElseIf KeyCode = vbKeyDelete Then
        'Tidak boleh melakukan hapus pada baris yang merupakan satu-satunya baris yang tersisa
        If flexTes.Rows = 2 Then Exit Sub
        
        'Hapus baris yang dipilih
        flexTes.RemoveItem flexTes.Row
    End If
    
End Sub

Private Sub Form_Load()
    'Default combobox dihide dulu
    cbTes.Visible = False
    
    'Tambahkan item(daftar isi) combobox
    cbTes.AddItem "Item 1"
    cbTes.AddItem "Item 2"
    
    'Setting flexgrid
    Call setGrid
End Sub

Private Sub tampilCombo()
    
    cbTes.Visible = True
    
    'Inisialisasi default koordinat kiri dan atas combo
    cbTes.Left = flexTes.Left 'Koordinat kiri combo disamakan dengan koordinat kiri flexgrid
    cbTes.Top = flexTes.Top 'Koordinat atas combo disamakan dengan koordinat atas flexgrid
    
    'Looping untuk menentukan koordinat kiri combo
    'Jika kita memilih kolom ke 3, maka looping akan dilakukan mulai dari kolom ke 0 sampai kolom ke 2
    For i = 0 To flexTes.Col - 1
        cbTes.Left = cbTes.Left + flexTes.ColWidth(i) 'Pada setiap looping koordinat kiri combo akan ditambah dengan lebar cell
    Next i
    
    'Looping untuk menentukan koordinat atas combo
    'Jika kita memilih baris ke 3, maka looping akan dilakukan mulai dari baris ke 0 sampai baris ke 2
    For j = 0 To flexTes.Row - 1
        cbTes.Top = cbTes.Top + flexTes.RowHeight(j) 'Pada setiap looping koordinat atas combo akan ditambah dengan tinggi cell
    Next j
    
    
    '***Setelah melakukan kedua looping diatas, combo akan berada pada koordinat atas dan kiri kolom yang dipilih***
    
    'Jika baris paling atas yang nampak di grid merupakan baris yang lebih dari baris ke 1, koordinat top dari cbTes dikurangi akumulasi lebar baris-baris
    'sebelum baris paling atas yang nampak di grid
    If flexTes.TopRow > 1 Then
        cbTes.Top = cbTes.Top - ((flexTes.TopRow - 1) * flexTes.RowHeight(1))
    End If
    
    'Munculkan combo yang sebelumnya dihide
    cbTes.Visible = True
     
    'Sesuaikan lebar combo dengan lebar cell yang dipilih
    cbTes.Width = flexTes.ColWidth(flexTes.Col)
    
    'Fokus ke combo
    cbTes.SetFocus
    
End Sub

Private Sub setGrid()
    'Setting baris dan kolom flexgrid
    flexTes.Rows = 2 '2 baris
    flexTes.Cols = 4 '4 kolom
    
    'Lebar untuk kolom 0 langsung dipatok 500
    'Kolom 0 akan diisi nomor baris
    flexTes.ColWidth(0) = 500
    
    'Teks akan ditaruh ditengan-tengah kolom
    flexTes.ColAlignment(0) = flexAlignCenterCenter
    
    'Judul baris ke 0 pada kolom ke 1,2 dan 3
    flexTes.TextMatrix(0, 1) = "Kolom 1"
    flexTes.TextMatrix(0, 2) = "Kolom 2"
    flexTes.TextMatrix(0, 3) = "Kolom 3"
    
    'Inisialisasi awal lebar flexgrid
    flexTes.Width = 0
    
    'Looping untuk menentukan lebar flexgrid agar sesuai dengan lebar seluruh cell
    For i = 0 To flexTes.Cols - 1
        flexTes.Width = flexTes.Width + flexTes.ColWidth(i)
    Next i
    
    'Menambah lebar flexgrid agar ada celah sedikit pada ujung sebelah kanannya
    flexTes.Width = flexTes.Width + 100

    
End Sub

Private Sub isiFlexGrid()
    'Informasi baris yang dipilih user disimpan di variabel baris
    baris = flexTes.Row
    
    'Informasi kolom yang dipilih user disimpan di variabel kolom
    kolom = flexTes.Col
    
    'Beri nomor Pada setiap baris pada kolom ke 0
    flexTes.TextMatrix(baris, 0) = flexTes.Row
    
    'Pada baris dan kolom yang dipilih user, setelah user melakukan enter, akan diisi dengan teks dari combo
    flexTes.TextMatrix(baris, kolom) = cbTes.Text
End Sub

15 February 2016

VB 6.0, Implementasi Algoritma Buble Sort

Berikut adalah implementasi Algoritma Buble Sort menggunakan VB 6.0

Dim arrAngka() As Integer

Dim bolAdaPerubahan As Boolean

Dim strTmp As String

Dim i, j As Integer



Private Sub cmdOK_Click()

    ReDim Preserve arrAngka(Len(Trim(txt1.Text)) - 1)

    

    'Masukan data ke array

    For i = 0 To Len(Trim(txt1.Text)) - 1

        arrAngka(i) = Mid(txt1.Text, i + 1, 1)

    Next i

    

    bolAdaPerubahan = True

    

    'Lakukan pembandingan selama masih ada perubahan

    Do While bolAdaPerubahan = True



x:

    i = 0

    bolAdaPerubahan = False

        

        'Bandingan data dengan data di sebelahnya

        For i = 0 To UBound(arrAngka())

            'Jika masih ada perubahan dan pembandingan sudah dilakukan sampai ke data terakhir

            'Maka ulangi pembandingan dari data pada deretan paling awal

            If bolAdaPerubahan = True And i = UBound(arrAngka()) Then GoTo x:

            

            'Jika sudah tidak ada perubahan dan pembandingan sudah dilakukan sampai ke data terakhir

            'Maka hentikan pembandingan, artinya data sudah terurut dari kecil ke besar

            If bolAdaPerubahan = False And i = UBound(arrAngka()) Then Exit For:

                                                    

            'Apakah angka di sebelahnya lebih kecil?

            If arrAngka(i + 1) < arrAngka(i) Then

                'Jika ya

                

                bolAdaPerubahan = False

                

                'Tukar posisi

                strTmp = arrAngka(i)

                arrAngka(i) = arrAngka(i + 1)

                arrAngka(i + 1) = strTmp

                

                bolAdaPerubahan = True

            End If

            

        Next i

        

    Loop

    

    txt2.Text = ""

    

    'Masukan ke teks hasil

    For i = 0 To UBound(arrAngka)

        txt2.Text = txt2.Text + CStr(arrAngka(i))

    Next i

    

End Sub





SQL Server 2008, Nested Case

Berikut contoh penggunan Case di dalam Case atau Nested Case di Sql Server 2008
SELECT
    col1,
    col2,
    col3,
    CASE WHEN condition THEN
      CASE WHEN condition1 THEN
        CASE WHEN condition2 THEN calculation1
        ELSE calculation2 END
      ELSE
        CASE WHEN condition2 THEN calculation3
        ELSE calculation4 END
      END
    ELSE CASE WHEN condition1 THEN 
      CASE WHEN condition2 THEN calculation5
      ELSE calculation6 END
    ELSE CASE WHEN condition2 THEN calculation7
         ELSE calculation8 END
    END AS 'calculatedcol1',
    col4,
    col5 -- etc
FROM table

14 February 2016

SQL Server 2008, ROW_NUMBER()

ROW_NUMBER() digunakan untuk membuat nomor yang berurutan pada suatu result set, berikut contoh penggunaan ROW_NUMBER()
select top 10 ROW_NUMBER() over(order by NoPendaftaran) as No, NoPendaftaran from detailBiayaPelayanan

--Menggunakan partition, agar nomornya direset ke 1 ketika beda NoPendaftaran
select top 10 ROW_NUMBER() over(partition by nopendaftaran order by NoPendaftaran) as No,NoPendaftaran from detailBiayaPelayanan

SQL Server 2008, Convert

Fungsi convert mirip dengan fungsi cast, yaitu untuk merubah tipe data dari suatu data atau variabel, tetapi fungsi convert mempunya tambahan parameter style untuk merubah format data, misalkan untuk merubah format tanggal, berikut contoh penggunaan convert.
declare @a float
declare @b varchar(20)
declare @c varchar(20)

set @a=1.5
set @b=1
set @c=2

select CONVERT(Int,@a) --Konversi dari float ke int akan ditruncate
select @b+@c --Menghasilkan 12
select CONVERT(int,@b)+CONVERT(int,@c) --Menghasilkan 3
select CONVERT(datetime,'2016-02-19',101) --Menghasilkan 2016-02-19 00:00:00.000

SQL Server 2008, Cast

Cast digunakan untuk merubah tipe data suatu data atau variabel, contoh penggunaanya adalah sebagai berikut.
declare @a varchar(10)
declare @b varchar(10)
declare @c varchar(10)

set @a=1
set @b=2

set @c =@a+@b
print @c --Hasilnya 12

set @c=CAST(@a as int)+CAST(@b as int)
print @c --Hasilnya 3

13 February 2016

SQL Server 2008, Isnull dan Coalesce

declare @a varchar(25)
declare @b varchar(25)
declare @c varchar(25)
declare @d varchar(4)

set @a=Null
set @b =Null
set @c='Variabel @c ada isinya'
set @d=null

--Isnull
--Mereplace nilai yang Null menggunakan nilai yang dispesifikasikan
--Tipe data dari ekspresi ditentukan oleh tipe data input pertama
select ISNULL(@a,'Variabel @a Kosong') as [Tes Isnull]

--Jika inputan yang pertama adalah literal null tak bertipe, maka tipe data ekspresi ditentukan oleh input yang kedua
select ISNULL(Null,'Variabel @a Kosong') as [Tes Isnull]

--Jika kedua inputan adalah literal tak bertipe maka tipe data ekspresinya adalah Int
select ISNULL(null,null)

--Akan menampilkan kata 'Saya', karena kepotong, ngikutnya ke tipe dan panjang data input pertama
select ISNULL(@d,'Saya ganteng')

--Coalse
--Mirip dengan Isnull, tapi bisa banyak input
--Tipe data hasil ekspresi ditentukan oleh tipe data input argumen dengan precedence paling tinggi
select coalesce(@a,'Variabel @a Kosong')
select coalesce(@a,@b,'Variabel @a kosong')
select coalesce(@a,@b,@c)

--Error, ini terjadi karena semua inputnya adalah literal null tak bertipe
select coalesce(null,null)
--Tidak akan error karena literal nullnya dicast dulu ke int
select coalesce(cast(null as int),null)

--Akan error, karena tipe data ekspresi ditentukan oleh tipe data yang kedua yg merupakan tipe data int
--Sql mencoba mngkonversi 'abc' ke int
select coalesce('abc',1)

SQL Server 2008, Union dan Union All

Contoh penggunaan Union dan Union All
select nocm,namalengkap,namapanggilan from Pasien where NoCM ='11500418'

select NoCM,NamaLengkap from Pasien where NoCM='11500418'
union all
select NoCM,NamaPanggilan from Pasien where NoCM='11500418'

select NoCM,NamaLengkap from Pasien where NoCM='11500418'
union
select NoCM,NamaPanggilan from Pasien where NoCM='11500418'

12 February 2016

VB 6, Pengurutan Angka

Dim arrAngka() As Integer
Dim intAngkaTerkecil As Integer
Dim tmpAngka As Integer
Dim i, j As Integer 'Untuk counting

Private Sub cmdUrut_Click()
    ReDim Preserve arrAngka(Len(Trim(txtUrut.Text)))
   
     'Masukan seluruh angka ke array
     For i = 0 To Len(Trim(txtUrut.Text)) - 1
        arrAngka(i) = Mid(Trim(txtUrut.Text), i + 1, 1)
     Next i
    
     For i = 0 To UBound(arrAngka) - 1
        'Ambil angka satu2, masukan ke variabel sebagai kandidat angka terkecil
        intAngkaTerkecil = arrAngka(i)
       
        'Angka yang dijadikan kandidat terkecil dibandingkan dengan deretan angka2 berikutnya
        For j = i + 1 To UBound(arrAngka) - 1
            'Apakah angka di array lebih kecil dari kandidat angka terkecil?
            If arrAngka(j) < intAngkaTerkecil Then
                'Ubah kandidat angka terkecil dengan angka di array
                intAngkaTerkecil = arrAngka(j)
               
                'Tukarkan posisinya
                tmpAngka = arrAngka(i)
                arrAngka(i) = intAngkaTerkecil
                arrAngka(j) = tmpAngka
            End If
        Next j
    
     Next i
    
     txtUrut.Text = ""
     'Ubah text box dengan deretan angka yang sudah di urut
     For i = 0 To UBound(arrAngka) - 1
        txtUrut.Text = txtUrut.Text + CStr(arrAngka(i))
     Next i
End Sub

11 February 2016

Tabel Variabel Di Sql Server 2008

declare @tbTes table(
    id int,
    nama varchar(50)
)

insert into @tbTes values(1,'Mamang')
select * from @tbTes

Tabel Temporari di Sql Server 2008

Gunakan # untuk membuat tabel temporari lokal, tabel temporari lokal hanya bisa diakses pada satu session Gunakan ## untuk membuat tabel temporari global, tabel temporari global bisa diakses pada semua session yang aktif
create table #TmpTes
(
    id int,
    nama varchar(50)
)
insert into #TmpTes values(1,'Udin')
select * from #TmpTes

Derived Table di Sql Server 2008

select jmlKarakter from
(
    select len(namalengkap) jmlKarakter from Pasien
)tbPasien

Contoh Penggunaan Where, Group By dan Having Secara Bersamaan

Select field,COUNT(field) from table
where field=''
group by field
having count(field)>1

Contoh Penggunaan Perintah Having di Sql Server 2008

Having digunakan untuk memfilter data yang kolomnya berasal dari hasil fungsi agregat
Select Top 10 field,COUNT(field) From table
Group By field
Having Count(field)>1 and field=[filter]

Contoh Subquery di Sql Server 2008

--Subquery
select top 10 field1,field2
(Select field from table2
where field=table1.field
) alias
from table1

08 February 2016

SQL Server 2008, Cursor

Contoh penggunaan cursor di Sql Server 2008

--Deklarasi variabel

declare @nama as varchar(50) 

declare @alamat as varchar(50)



--Deklarasi cursor

declare myCursor cursor for

--Isi cursor dengan value dari queri berikut

select top 10 namalengkap, alamat from pasien where alamat is not null and alamat<>'' 

-------------------------------------------------------------------------------------

open myCursor --Buka cursor

fetch next from myCursor into @nama,@alamat --Masukan value dari baris pertama ke variabel



--Selama @@FETCH_STATUS bernilai 0 lakukan looping

--@@FETCH_STATUS akan bernilai 1 jika data yang ada di cursor sudah habis

while @@FETCH_STATUS=0

begin

    print @nama + ' ' +@alamat --Cetak variabel

fetch next from myCursor into @nama,@alamat --Masukan data berikutya ke variabel

end


07 February 2016

Tips Mendapatkan Wanita Impian Kita

Berdasarkan fakta-fakta yang saya lihat di kehidupan jaman sekarang, saya punya 2 tips untuk mendapatkan wanita impian kita, yaitu :
Tingkat kemudahan untuk mendapatkan wanita impian kita, tergantung dari
1. Seberapa banyak harta yang kita miliki
2. Seberapa tidak baiknya diri kita

Secara hati, saya pribadi tidak percaya teori tersebut, tetapi secara fakta sehari-hari hal itu justru sering terjadi. Saya sering melihat wanita yang menurut saya wanita tersebut adalah wanita yang termasuk kriteria wanita impian saya, pacarnya selalu :
1. Pria kaya raya
2. Pria yang menurut saya bukan pria baik-baik(Anggota geng, pake tato, suka minum miras, pake anting dll)

Untuk alasan no. 1 masih bisa saya mengerti, tapi untuk yang no. 2 saya jujur masih tidak mengerti kenapa pria seperti itu bisa jadi pilihan. Terkadang saya sering punya niat untuk menjadi seseorang yang tidak baik untuk mencoba teori saya, tapi rasanya tidak mungkin untuk dilakukan saat ini :)

VB 6, Mengubah Posisi Objek Sesuai Koordinat Klik Mouse

Objek textbox akan berubah posisinya sesuai koordinat klik mouse pada form
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Text1.Top = Y
    Text1.Left = X
End Sub

03 February 2016

VB 6, Notifikasi Menggunakan Winsock

Alur : ketika user dari ruangan IGD melakukan klik simpan setelah mengisi data reservasi, notifikasi reservasi di loket pendaftaran akan muncul. Kodingan di modul pendaftaran
'Cari setingan port dari seting global
'Potongan kode di event Form Load
'----------------------------------------------------------------------------------------------
    strSQL5 = "Select Value From SettingGlobal Where prefix='PortNotifikasiReservasi'"
    Call msubRecFO(rsE, strSQL5)
   
    'Buka port
    With Winsock1
        .Close
        .LocalPort = Trim(rsE(0))
        .Listen
    End With
'----------------------------------------------------------------------------------------------

Private Sub Winsock1_Close()
    Winsock1.Close
    Winsock1.Listen
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
   
    On Error GoTo duaTambahDuaSamaDenganLima

    Winsock1.Close
    Winsock1.Accept requestID

    Exit Sub

duaTambahDuaSamaDenganLima:
    Call Winsock1.Close
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    On Error GoTo duaTambahDuaSamaDenganLima

    Dim data$
   
    Winsock1.getData data$
    Call PlaySound
   
    If Left(data$, 3) = mstrKdRuanganLogin Then 'Hanya akan tampil di ruangan yang seharusnya menerima notifikasi
        If MsgBox("Reservasi pasien " & data$ & ", Klik Yes untuk membuka Form Daftar Reservasi", vbYesNo + vbInformation) = vbYes Then
            frmDaftarReservasiPasien.Show
        End If
    End If

duaTambahDuaSamaDenganLima:
End Sub
Kodingan di Modul Gawat Darurat Fungsi yang ditempatkan di event Form Load
Private Function koneksiNotifikasi()
   
    On Error GoTo duaTambahDuaSamaDenganLima
   
    'Ambil setingan IP
    strSQL6 = "Select Value From SettingGlobal Where prefix='IPUntukNotifikasi'"
    Call msubRecFO(rsF, strSQL6)
   
    'Ambil setingan port
    strSQL7 = "Select Value From SettingGlobal Where Prefix='PortNotifikasiReservasi'"
    Call msubRecFO(rsG, strSQL7)
   
    jumlahTitikKoma = 0
    ReDim tmpIP(0)
   
   
    'Ekstrak IP
    For X = 1 To Len(rsF(0))
        If Mid(rsF(0), X, 1) = ";" Then
            jumlahTitikKoma = jumlahTitikKoma + 1
           
            If jumlahTitikKoma = 1 Then
                tmpIP(0) = Left(rsF(0), X - 1)
            Else
                ReDim Preserve tmpIP(UBound(tmpIP) + 1)
                tmpIP(UBound(tmpIP)) = Mid(rsF(0), posisiTitikKomaSebelumnya + 1, (X - 1) - posisiTitikKomaSebelumnya)
            End If
           
            posisiTitikKomaSebelumnya = X
        End If
    Next X
   
    'Konekkan ke IP
    For i = 0 To UBound(tmpIP)
        If i <> 0 Then 'Index 0 jangan diload lagi, kan sudah ada
            Load Winsock1(i)
        End If
       
        Winsock1(i).Close
        Winsock1(i).Connect tmpIP(i), CInt(rsG(0))
       
    Next i
   
 
Exit Function

duaTambahDuaSamaDenganLima:
End Function

'Potongan kode di tombol simpan, di form input data reservasi
'Tampilkan notifikasi di loket yang seharusnya
    strSQL5 = "Select KdInstalasi From Ruangan Where KdRuangan='" & dcRuangan.BoundText & "'"
    Call msubRecFO(rsE, strSQL5)
   
    'Kirim pesan ke semua ip yang ada di setingan
    For i = 0 To UBound(tmpIP)
        If Winsock1(i).State = 7 Then
            If rsE(0) = "03" Then 'Tampilkan notifikasi di loket yang seharusnya
                Winsock1(i).SendData "193" & txtNamaPasien.Text
            Else
                Winsock1(i).SendData "195" & txtNamaPasien.Text
            End If
        End If
    Next i

Kodingan di Event Form Unload
'Putuskan koneksi winsock
    For i = 0 To UBound(tmpIP)
        Winsock1(i).Close
    Next i

02 February 2016

VB 6 Array, Redim dan Redim Preserve

Kodingan dasar array Deklarasi array :
Dim mahasiswa() as String
Mengetahui jumlah elemen array :
Ubound(mahasiswa)
Mendefinisikan ulang jumlah elemen array sekaligus mengosongkan isi array :
Redim mahasiswa(8)
Mendefinisikan ulang jumlah elemen array tanpa mengosongkan isi array jika array tersebut sudah ada isinya :
Redim preserve mahasiswa(8)

VB 6 Cek Null Value Datagrid

Kode sederhana tapi sering terlupakan :), kodingan untuk mengecek apakah nilai dari cell grid yang kita pilih bernilai Null atau tidak :)
IsNull(DataGrid1.Columns(6).CellValue(DataGrid1.Bookmark))

VB 6.0 Select baris datagrid lebih dari satu

Misalkan nama datagridnya dgDaftarPasienLab Untuk melakukan select lebih dari 1 gunakan tombol Ctrl
Dim i As Integer
Dim intCount As Integer
   
intCount = dgDaftarPasienLab.SelBookmarks.Count - 1
ReDim ArrSelBK(intCount)
   
For i = 0 To intCount
           ArrSelBK(i) = dgDaftarPasienLab.SelBookmarks(i)
           dgDaftarPasienLab.Row = ArrSelBK(i) - 1
     
           'Perintah'

Next i

Pengumuman