SQL Server Indonesia User Groups Community September 2009 - Posts - suherman
Welcome to SQL Server User Group Indonesia
Sign in JoinHelp | Sign In Live ID

suherman

Share ur Knowledge

September 2009 - Posts

Menghitung Selisih jam dengan T-SQL

Habis baca milis, ada yang nanya mengenai menghitung selisih waktu pembicaraan telepon, Jadi ‘gatel’ juga neh mau bikin UDF nya.

untuk menghitung selisih jam dapat menggunakan UDF yang saya buat dibawah ini. Namun tidak bisa menghitung lebih dari 24 jam, karena hanya menghitung sampe jam saja dengan format ‘hh”mm:ss’

Berikut UDF nya :

create function dbo.selisih_tanggal(@tgl1 datetime, @tgl2 datetime)
returns char(8)
as
begin
declare @selisih int, @jam int, @menit int, @detik int, @name_p char(8)
declare @Cjam char(2), @Cmenit char(2), @Cdetik char(2)

set @selisih = (select datediff(second,@tgl1,@tgl2))
if @selisih<86400
begin
set @jam= (select (@selisih/3600))
set @menit= (select (@selisih%3600)/60)
set @detik = (select ((@selisih%3600)%60))

begin
if @jam>9
set @Cjam = (select Cast(@jam as char(2)))
else
set @Cjam = '0'+(select Cast(@jam as char(1)))
end

begin
if @menit>9
set @Cmenit = (select Cast(@menit as char(2)))
else
set @Cmenit = '0'+(select Cast(@menit as char(1)))
end

begin
if @detik>9
set @Cdetik = (select Cast(@detik as char(2)))
else
set @Cdetik = '0'+(select Cast(@detik as char(1)))
end
set @name_p=@Cjam+':'+@Cmenit+':'+@Cdetik
end
else
begin
set @name_p='uncount!'
end
return @name_p
end

 
untuk memanggilnya dapat menggunakan T-SQL seperti contoh dibawah ini :
select dbo.selisih_tanggal('2009-01-21 01:15:00', '2009-01-21 13:30:30')

 

Selamat mencoba n Have Fun !!

 

Posted: Sep 16 2009, 04:14 AM by Suherman | with no comments
Filed under: ,
Database Backup

Melakukan pekerjaan Backup untuk sebuah database adalah sebuah keharusan, tidak peduli database yang dikelola itu besar atau kecil. Hal ini dilakukan sebagai tindakan preventif apabila terjadi kerusakan atau kehilangan data. Apa jadinya ketika database kita mengalami kerusakan dan kita tidak memiliki Backup ? tentunya hal ini akan menjadi sebuah bencana besar.

Pada hakikatnya Backup itu adalah sebuah copy dari database production yang kita simpan di sebuah tempat/device yang sewaktu-waktu dapat kita panggil untuk direstore pada saat dibutuhkan. (ini menurut pendapat gue seh… )

Di Sql Server 2008, banyak fitur yang dapat digunakan untuk meminimalkan kehilangan data. Seperti Mirroring, Backup, Log Shipping yang kesemuanya dapat di ‘ramu’ menjadi sebuah skenario penyelamatan database.

Beberapa catatan kecil namun penting yang saya buat saat  melakukan backup adalah :

  1. Hal yang penting dalam backup adalah adanya testing restore dari Backup yang dibuat. Pastikan bahwa Backup yang kita miliki dapat di restore, percuma kan kalo backupnya gak bisa direstore.
  2. Bila backup disimpan ke Disk, jangan pernah menyatukan Backup dengan Database data dan log dalam Disk yang sama. Sehingga bila disk yang digunakan untuk menyimpan database data dan log tidak bisa diakses, maka backup anda masih bisa terselamatkan.
  3. Bila menggunakan Differential Backup, perhatikan ukuran file yang terbentuk. Bila sama atau lebih dari ukuran file Full Backup, maka perkecil lagi jarak waktu antara Full Backup dan Differential Backup.
  4. Untuk Meminimalkan kehilangan data pada saat database production failure, selalu gunakan transaction log backup pada apapun strategi backup yang anda gunakan.

 

Share this post :
Posted: Sep 08 2009, 03:41 AM by Suherman | with no comments
Filed under:
Mempresentasikan data spatial dengan Geography Markup Languange (GML)

Geography Markup Language (GML) Merupakan sebuah XML yang difungsikan khusus untuk mempresentasikan sebuah informasi spatial. Seperti halnya sebuah bahasa XML, GML memiliki struktur dalam bahasa XML dalam mempresentasikan informasi spatial dimana setiap spesifik properti geografis memiliki spesifik tag XML.

 Membuat Point dari GML

Sama dengan yang digunakan oleh format WKT dimana point mengacu pada koordinat Langitude dan Latitude. Contoh penulisan GML untuk menggambar sebuah point adalah sebagai berikut :

<point xmlns="http://www.opengis.net/gml">
   <pos>15.30 -4.55</pos>
</point>

Untuk menggunakan GML bila hendak mempresentasikan Point dalam type data Geometry atau Geography di SQL Server 2008 dapat dilakukan dengan cara sebagai berikut:

Declare @gml xml;
set @gml = '
<Point xmlns="http://www.opengis.net/gml">
     <pos>15.30 -4.55</pos>
</point>
';
Declare @Point Geometry;
set @Point = geometry::GeomFromGml(@gml, 4326)

 

Membuat LineString dari GML

Bila hendak membentuk LineString atau bentuk apapun yang terjadi oleh lebih dari satu point, maka contoh syntax GMLnya adalah sebagai berikut:

Misalkan kita akan menarik garis dari 2 buah titik yang mempunyai koordinat (3,5) dan (4,8). Maka syntax GML nya adalah

<LineString xmlns=”http://www.opengis.net/gml”>
<postList>3 5 4 8</post>
</LineString>

 

Membuat Polygon dari GML

Berikut ini adalah syntax membuat polygon dari GML

<Polygon xmlns=”http://www.opengis.net/gml”>
    <exterior>
        <LinearRing>
            <postList>2 2 4 5 5 6 6 7 1 9 2 2<postList>
        </LinearRing>
    </exterior>
</Polygon>
Posted: Sep 08 2009, 03:39 AM by Suherman | with no comments
Filed under: ,
ConnectionString SQL Server Native Client 10.0

Bagi temen-temen yang masih berkutat dengan tools-tools developer lawas seperti Visual Foxpro, Visual Basic 6.0 , ASP Classic atau tools developer non Microsoft seperti delphi, php programming biasanya membutuhkan syntax ConnectionString untuk dapat menggunakan database SQL Server.

Kebetulan dikantor saya masih menggunakan Visual Foxpro dan databasenya SQL Server 2008. Sehingga agar si Aplikasi dapat memanfaatkan fitur-fitur SQL Server 2008, maka connectionstring yang biasa kami gunakan kami ganti menggunakan SQL Server Native Client 10.0 .

Hal-hal baru yang terdapat di SQL Server Native Client 10.0 adalah :

  1. Table-Valued Parameters (SQL Server Native Client)
  2. Perbaikan pada Large CLR User-Defined Types
  3. FILESTREAM Support
  4. Service Principal Name (SPN) Support in Client Connections
  5. Sparse Columns Support in SQL Server Native Client
  6. Date/Time Improvements

SQL Server Native Client 10.0 dapat diperoleh dengan cara menginstal file sqlncli.msi yang ada didalam CD SQL Server 2008 anda. Install file tersebut dikomputer client anda, sehingga nantinya koleksi ODBC Driver anda akan bertambah.

ODBC  SQL Server Native Client 10.0 akan berdiri berdampingan/side by side dengan ODBC SQL Server. ODBC  SQL Server Native Client 10.0 support SQL Server 7.0 keatas.

Berikut ini adalah Connectionstring Standard Security dari ODBC SQL Server Native Client 10.0 :

Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Berikut ini adalah Connectionstring Trusted Connection dari ODBC SQL Server Native Client 10.0 :

Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;

Presentasi Data Spatial dengan Format Well-Known Text (WKT)

Well-Known Text adalah salah satu Standard format yang diakui oleh Open Geospatial Consortium (OGC) dalam hal pertukaran informasi spatial.

Berikut ini adalah Metode-metode untuk mempresentasikan Spatial objek dengan format WKT :

Type Objek

Metode

Point STPointFromText()
LineString STLineFromText()
Polygon STPolyFromText()
MultiPoint STMPointFromText()
MultiLineString STMLineFromText()
MultiPolygon STMPolyFromText()
Geometry Collection STGeomCollFromText()

Apapun type objek yang akan dibuat, semua menggunakan format syntax yang sama yaitu :

datatype::method(geometrypresentation, srid)

A. Membuat Point dengan Format WKT
  WKT mempresentasikan point dari sistem koordinat Cartesian, yang dapat dilihat fungsinya seperti berikut :
  Point( X , Y )
  Sedangkan untuk mempresentasikannya di koordinat geographic dapat dibuat seperti ini
  Point( Longitude  Latitude )
  Di SQL Server 2008 hal ini dapat dijalankan seperti ini :
 
Declare @Bogor Geography
set @Bogor = geography::STPointFromText('POINT(6.59 106.79)',4326)
B. Membuat LineString dengan Format WKT
  LineString ini biasanya digunakan untuk menghubungkan antara 1 buah point dengan point yang lain. Misalkan saya akan menarik garis dari 2 buah titik yang mempresentasikan panjang jembatan Suramadu :
 
Declare @PanjangSuramadu geography
Set @PanjangSuramadu = geography::STLineFromText('LINESTRING(
-7.1109 112.6213,
-7.1106 112.7042
)',
4326)
C. Membuat Polygon dengan Format WKT
  Polygon sebenarnya hampir sama dengan LineString, namun Polygon bisa dibentuk oleh lebih dari 3 titik,  dimana titik pertama dan titik terakhir memiliki koordinat yang sama. Berikut ini adalah contoh gambar polygon yang mempresentasikan Gedung Departemen Pertahanan Amerika Pentagon :
 
DECLARE @Pentagon geography
SET @Pentagon = geography::STPolyFromText(
'POLYGON(
(
-77.0532238483429  38.870863029297695,
-77.05478297004701  38.87304314667469,
-77.05788016319276  38.872800914712734,
-77.05849170684814  38.870219840133124,
-77.05556273460388  38.8690670969385,
-77.0532238483429  38.870863029297695  
),
(-77.05582022666931  38.8702866652523,
-77.0569360256195  38.870737733163644,
-77.05673217773439   38.87170668418343,
-77.0554769039154  38.871848684516294,
-77.05491900444031  38.87097997215688,
-77.05582022666931  38.8702866652523
)
)',
4326
)
   
Posted: Sep 05 2009, 02:57 AM by Suherman | with no comments
Filed under: ,
Choosing the Right Spatial Datatype

Seperti yang pernah saya bahas sebelumnya bahwa SQL Server 2008 menyediakan 2 buah jenis type data spatial yaitu Geometry dan Geography.

Lalu bagaimana penentuan penggunaan jenis type data yang tepat dan dalam situasi apa. Mudah-mudahan beberapa point dibawah ini dapat memberikan petunjuk mengenai penentuan jenis type data spatial yang tepat untuk digunakan.

  1. Bila anda mendapatkan sumber data spatialnya bersumber dari GPS, Google Earth atau Virtual Earth yang telah memiliki informasi latitude dan longitude maka akan lebih tepat bila anda menggunakan type data spatial Geography.
  2. Bila anda mendapatkan sumber data spatial dari sebuah peta yang berbentuk datar dimana koordinat X dan Y nya telah disesuaikan sebagai bentuk arah angin timur dan utara dan telah diproyeksi sebelumnya dari geography coordinate menjadi sebuah peta datar, gunakan type data spatial Geometry
  3. Bila anda hendak membuat sebuah data spatial yang dibuat hanya berdasar pada koordinat X dan Y namun tidak merujuk pada peta bumi. gunakan type data spatial Geometry.

Menentukan type data spatial yang benar merupakan langkah yang paling awal harus diambil dalam pembuatan database spatial.

adalah hal yang tidak mungkin untuk mengkombinasikan type data spatial geometry dan geography dalam sebuah query yang sama. bila pun hal itu tetap dilakukan, SQL Server akan menghasilkan data NULL.

Perhatikan juga mengenai keakuratan data yang diinginkan. Bila anda bekerja dengan data Geometry yang berasal dari proyeksi peta Geography, maka semakin luas area yang kita kerjakan, maka semakin nilai akurasinya makin kecil.

Posted: Sep 05 2009, 02:54 AM by Suherman | with no comments
Filed under: ,
Spatial Datatypes Introduced in SQL Server 2008

Microsoft SQL Server 2008 memiliki 2 buah type data baru yang dibuat khusus untuk menyimpan spatial data. Tipe data tersebut adalah Geography dan Geometry.

Tipe data Geography digunakan untuk menyimpan spatial data jenis Vektor Geodetic sedangkan Geometry digunakan untuk menyimpan spatial data jenis Vektor Planar.

Untuk mengetahui Geodetic spatial reference systems yang disupport oleh SQL Server 2008 dapat dilakukan dengan melihat data yang tersimpan di tabel sys.spatial_reference_systems. Lakukan dengan T-SQL seperti ini :

select * from sys.spatial_reference_systems

Disana tersimpan juga informasi detail dari spatial reference menggunakan format Well-Known Text (WKT). WKT adalah standar industri untuk engekspresikan informasi spatial yang telah diakui oleh OGC (Open Geospatial Consortium).

Misalkan kita hendak melihat Geodetic spatial reference system yang biasa digunakan di sistem GPS, yaitu WGS 84. pada sys.spatial_reference_systems dapat kita temukan pada EPSG:4326 spatial reference. untuk dapat menemukannya, kita dapat melakukan query seperti ini :

select well_known_text from sys.spatial_reference_systems
where authority_name='EPSG'
and authorized_spatial_reference_id=4326

maka akan didapatkan data sebagai berikut :

GEOGCS[
"WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID[
"WGS 84",
6378137,
298.257223563]],
PRIMEM[
"Greenwich", 0],
UNIT["Degree", 0.0174532925199433]]

dari data diatas dapat kita kenali bahwa Geographic Coordinate System yang digunakan adalah “WGS 84”. Geographic Coordinate System menunjukkan posisi dari object menggunakan angular coordinates yang biasa kita kenal juga dengan sebutan latitude dan longitude.

Tipe data Geometry memperlakukan data spatial sebagai sebuah flat object, sehingga apabila kita melakukan perhitungan jarak antara 2 buah titik, dapat dilakukan dengan perhitungan geometrik biasa.

Setiap objek yang ada akan dikenali posisinya menggunakan sistem koordinat Cartesian (X,Y).

Posted: Sep 05 2009, 02:51 AM by Suherman | with no comments
Filed under: ,
T-SQL Using SQL Server 2008 Express with Advanced Services

Pada tannggal 27 Juni 2009 saya diminta oleh mahasiswa Ilmu Komputer Universitas Lambung Mangkurat Banjarmasin untuk memberikan sedikit sharing knowledge mengenai dasar-dasar Transact SQL.

Untuk itu saya coba mengenalkan mereka pada SQL Server 2008 Express with Advanced Services. Acara dimulai dengan materi menginstall SQL Server 2008 Express with Advanced Services pada OS XP dan Vista, yang ternyata pada saat penginstallan membutuhkan .Net Framework  dan Powershell.

Setelah penginstallan materi dilanjutkan dengan melakukan attach Database Northwind yang akan dijadikan sebagai objek latihan.

Kemudian barulah dimulai materi inti yaitu mulai dari bagaimana membangun sebuah database dan teknik-teknik Query dasar. Acara cukup mengasikkan, apalagi peserta sangat kritis sehingga acara menjadi lebih hidup oleh banyak diskusi dan beberapa simulasi kasus yang diterapkan .

Acara berlangsung dari jam 10.00 Wita sampai dengan 13.30 Wita. Peserta yang hadir ada 19 peserta.

Berikut adalah dokumentasinya :

PIC_1597

PIC_1596

PIC_1593

PIC_1598

PIC_1594

Free E-Book Introducing Microsoft SQL Server 2008

Kebetulan lagi jalan-jalan di Microsoft SQL Server 2008 Learning Portal, eh ketemu penawaran buku elektronik gratis Introducing Microsoft SQL Server 2008

image

Monggo di download disini ya Free Microsoft Press E-Book - Introducing SQL Server 2008

Semoga bermanfaat.

Posted: Sep 03 2009, 02:29 AM by Suherman | with no comments
Filed under:
Mengimport File Text yang mengandung footer

Berikut ini saya telah membuat sebuah video demo bagaimana sqlserver 2000 mengimport data text yang memiliki footer, semoga bermafaat

Video dapat dilihat di Youtube dengan link sbb : http://www.youtube.com/watch?v=960TFWwtmxc

Posted: Sep 03 2009, 02:15 AM by Suherman | with no comments
Filed under: ,
Membangun Aplikasi Northwind Traders Menggunakan Microsoft SQL Server 2000 dan Microsoft Visual FoxPro 8.0

Saya telah membuat tutorial praktis untuk teman-teman yang masih menggunakan Database Ms. SQL Server 2000 dan Microsoft Visual Foxpro.

tutorial tersebut dapat didownload disini Download Tutorial MS. Visual Foxpro dan Sql Server 2000

More Posts