Foto oleh panumas nikhomkhai via Pexels

Sebelum bisa menulis satu baris query pun, langkah pertama yang wajib dilakukan adalah menginstal SQL Server beserta SQL Server Management Studio (SSMS) — aplikasi GUI resmi untuk mengelola database SQL Server. Banyak pemula tersendat di tahap ini karena bingung memilih edisi yang tepat, salah mengatur authentication saat pertama kali terhubung, atau lupa mencatat nama instance yang dibuat selama instalasi.

Artikel ini membahas langkah instalasi keduanya di Windows menggunakan edisi Developer yang gratis, lengkap dengan cara memverifikasi bahwa instalasi benar-benar berhasil sebelum lanjut ke materi berikutnya.

Mengunduh dan Menginstal SQL Server Developer Edition

  • Buka halaman unduhan resmi SQL Server di situs Microsoft dan pilih edisi Developer, yang gratis dan memiliki fitur selengkap edisi Enterprise
  • Jalankan installer dan pilih tipe instalasi Basic untuk pemula, atau Custom jika ingin mengatur lokasi data secara manual sejak awal
  • Catat nama instance yang muncul di akhir proses instalasi, misalnya MSSQLSERVER (instance default) atau SQLEXPRESS — nama ini wajib diingat karena akan dipakai saat membuat connection string nantinya

Menginstal dan Mengonfigurasi SSMS

SSMS tidak lagi disertakan dalam installer SQL Server sejak versi 2016 ke atas, sehingga harus diunduh terpisah dari halaman resmi Microsoft. Setelah terinstal, buka SSMS dan hubungkan ke server dengan pengaturan berikut:

  • Server name: nama komputer diikuti nama instance, contoh localhost\SQLEXPRESS atau cukup localhost jika yang terpasang adalah instance default
  • Authentication: pilih Windows Authentication untuk koneksi lokal tanpa perlu membuat user SQL terpisah, cara paling sederhana untuk mulai belajar

Jika koneksi berhasil, Object Explorer di sisi kiri SSMS akan menampilkan node server beserta folder Databases, Security, dan Server Objects — tanda bahwa SSMS sudah terhubung dengan benar ke instance SQL Server yang baru diinstal.

Mengaktifkan TCP/IP untuk Koneksi dari Aplikasi

Secara default, instalasi dengan pengaturan Basic kadang hanya mengaktifkan Shared Memory protocol, yang hanya berfungsi untuk koneksi dari komputer yang sama. Agar aplikasi seperti ASP.NET Core bisa terhubung (termasuk dari dalam container Docker), protokol TCP/IP perlu diaktifkan secara eksplisit.

  • Buka SQL Server Configuration Manager
  • Masuk ke SQL Server Network Configuration → Protocols for (nama instance)
  • Klik kanan TCP/IP → Enable, lalu restart service SQL Server agar perubahan berlaku

Memverifikasi Instalasi Berhasil

Mengecek daftar database bawaan setelah instalasi

SELECT name FROM sys.databases; -- Expected output: menampilkan database default bawaan -- master -- tempdb -- model -- msdb

Jika keempat database bawaan tersebut muncul, instalasi SQL Server dan koneksi SSMS sudah berhasil dan siap dipakai untuk membuat database pertama. Keempat database ini adalah database sistem internal yang dipakai SQL Server sendiri untuk menyimpan metadata, data sementara, template, dan konfigurasi job terjadwal — jangan pernah menghapus atau mengubahnya secara langsung.

Memahami Mode Autentikasi saat Instalasi SQL Server

Membuat login SQL Server Authentication lewat T-SQL

-- Mengaktifkan login SQL Server Authentication setelah instalasi -- (dijalankan lewat SSMS sebagai administrator) EXEC sp_configure 'show advanced options', 1; RECONFIGURE; -- Membuat login SQL Server baru untuk aplikasi CREATE LOGIN AppUser WITH PASSWORD = 'P@ssw0rdKuat123!'; -- Expected: login baru muncul di Security > Logins pada SSMS

Saat proses instalasi, SQL Server meminta pemilihan mode autentikasi antara Windows Authentication saja atau Mixed Mode yang mengaktifkan Windows Authentication sekaligus SQL Server Authentication. Windows Authentication memanfaatkan akun domain atau akun lokal Windows yang sedang login untuk memverifikasi akses ke database, sehingga tidak perlu password terpisah, sementara SQL Server Authentication membuat username dan password sendiri yang disimpan di dalam SQL Server.

Mixed Mode umumnya dipilih ketika aplikasi akan diakses dari luar domain Windows, misalnya aplikasi web yang berjalan di server Linux atau diakses lewat internet, karena koneksi semacam ini tidak bisa memanfaatkan Windows Authentication. Login sa (system administrator) yang dibuat otomatis saat Mixed Mode diaktifkan sebaiknya segera diberi password yang kuat atau bahkan dinonaktifkan setelah login administrator lain dibuat, karena login sa adalah target umum serangan brute force.

Setelah instance SQL Server terpasang, SQL Server Management Studio (SSMS) diinstal secara terpisah sebagai aplikasi client untuk mengelola server tersebut; SSMS tidak wajib berada di komputer yang sama dengan instance SQL Server, selama komputer tempat SSMS berjalan memiliki akses jaringan ke port TCP yang dipakai instance, biasanya port 1433 untuk instance default.

Mengatur Collation Server saat Instalasi dan Dampaknya

Memeriksa dan menggunakan collation secara eksplisit

-- Memeriksa collation level server dan database saat ini SELECT SERVERPROPERTY('Collation') AS CollationServer, DATABASEPROPERTYEX('AplikasiDB', 'Collation') AS CollationDatabase; -- Membandingkan dua string dengan collation case-insensitive secara eksplisit SELECT CASE WHEN 'Jakarta' = 'jakarta' COLLATE SQL_Latin1_General_CP1_CI_AS THEN 'Sama' ELSE 'Berbeda' END AS HasilPerbandingan; -- Hasil: -- CollationServer: SQL_Latin1_General_CP1_CI_AS -- HasilPerbandingan: Sama

Collation menentukan aturan pengurutan (sort order) dan perbandingan string pada SQL Server, mencakup apakah perbandingan bersifat case-sensitive (CS) atau case-insensitive (CI), serta accent-sensitive (AS) atau accent-insensitive (AI). Pengaturan ini dipilih sekali pada tahap instalasi sebagai collation default server, dan meskipun bisa diubah di level database atau bahkan kolom, mengubah collation server setelah instalasi memerlukan rebuild seluruh system database sehingga jauh lebih praktis menentukannya dengan benar sejak awal.

Ketidakcocokan collation sering muncul ketika database dipindahkan antar-server dengan pengaturan locale berbeda, atau saat query menggabungkan dua table dari database dengan collation berbeda, yang akan memunculkan error 'Cannot resolve collation conflict'. Masalah ini umum terjadi pada lingkungan yang menggabungkan database buatan tim lokal dengan collation Indonesia/Latin dan database pihak ketiga yang memakai collation default Amerika seperti SQL_Latin1_General_CP1_CI_AS.

Klausa COLLATE dapat dipakai secara eksplisit pada query untuk mengatasi konflik tersebut tanpa mengubah struktur database, misalnya dengan menyamakan collation kedua kolom saat JOIN. Namun solusi jangka panjang yang lebih baik adalah menetapkan satu standar collation di seluruh organisasi sejak perencanaan infrastruktur, karena perbedaan collation juga memengaruhi performa indeks pada kolom string akibat aturan pengurutan yang berbeda, dan menambal konflik lewat COLLATE pada setiap query hanya menambah beban pemeliharaan jangka panjang.

Instance Default dan Named Instance pada Satu Server Fisik

Mengecek nama instance server

-- Mengecek nama instance yang sedang terhubung SELECT @@SERVERNAME AS NamaServer, SERVERPROPERTY('InstanceName') AS NamaInstance; -- Hasil pada instance default: -- NamaServer: SRV-FINANCE01 NamaInstance: NULL -- Hasil pada named instance: -- NamaServer: SRV-FINANCE01\SQLDEV NamaInstance: SQLDEV

Satu komputer fisik dapat menjalankan lebih dari satu instance SQL Server sekaligus, selama hanya satu di antaranya berstatus default instance yang diakses cukup lewat nama server tanpa sufiks tambahan, sedangkan instance lainnya wajib diberi nama berupa named instance yang diakses dengan format NamaServer\NamaInstance. Pemisahan ini berguna saat satu server perlu menjalankan beberapa versi SQL Server berbeda atau memisahkan beban kerja development dan testing tanpa menyediakan mesin fisik terpisah.

Named instance tidak memakai port tetap 1433 seperti default instance, melainkan port dinamis yang ditentukan ulang setiap kali layanan direstart kecuali dikonfigurasi manual lewat SQL Server Configuration Manager, sehingga aplikasi client yang menyambung ke named instance sebaiknya menyertakan layanan SQL Server Browser agar proses resolusi port berjalan otomatis tanpa perlu mencantumkan nomor port secara eksplisit pada connection string.

Kesalahan Umum yang Sering Terjadi

Lupa mencatat nama instance saat instalasi

Tanpa mencatat nama instance, koneksi dari SSMS maupun dari aplikasi nantinya akan gagal karena connection string yang salah menyebut nama server, dan harus dicari ulang lewat SQL Server Configuration Manager.

Memilih SQL Authentication tanpa mengaktifkan Mixed Mode

SQL Server secara default hanya mengizinkan Windows Authentication kecuali Mixed Mode diaktifkan secara eksplisit saat instalasi atau belakangan lewat Server Properties. Mencoba login dengan username/password SQL tanpa pengaturan ini akan selalu gagal dengan pesan error login failed.

Lupa mengaktifkan TCP/IP lalu bingung aplikasi tidak bisa connect

Koneksi dari SSMS di komputer yang sama bisa berhasil lewat Shared Memory meski TCP/IP mati, sehingga masalah baru terlihat saat aplikasi eksternal mencoba connect dan selalu timeout.

Kapan Pendekatan Ini Tidak Cocok Dipakai

Instalasi SQL Server penuh di laptop pribadi dengan RAM terbatas bisa terasa berat untuk sekadar belajar, karena SQL Server Database Engine sendiri sudah memakan cukup banyak memori saat idle. Untuk kebutuhan belajar cepat tanpa instalasi lokal, SQL Server bisa juga dijalankan lewat Docker container atau memakai Azure SQL Database versi gratis, meski keduanya memiliki sedikit perbedaan fitur administratif dibanding instalasi penuh di Windows.

Ringkasan

Setelah SQL Server dan SSMS berhasil terpasang dan terhubung dengan benar, termasuk TCP/IP yang sudah diaktifkan untuk koneksi dari aplikasi eksternal, langkah berikutnya adalah memahami bagaimana database dan table disusun secara hierarkis sebelum mulai menulis query T-SQL yang sesungguhnya pada materi selanjutnya.