***Alternate data stream*** adalah sebuah fitur dalam sistem berkas NTFS yang dapat menyebabkan sebuah berkas memiliki beberapa data (atau dalam istilah NTFS disebut sebagai *stream*) sekaligus. Normalnya, sebuah berkas hanya memiliki sebuah data saja dalam atribut $DATA, yang tidak diberi nama. Dengan menambahkan nama kepadanya, maka sebuah berkas dapat memiliki beberapa *stream* baru, yang juga dimasukkan ke dalam atribut $DATA secara terpisah.

Cara kerja
----------

Sebuah *stream* memiliki format sebagai berikut:

```
<nama_berkas>.<ekstensi>:<nama_berkas>.<ekstensi>
```

Sebuah *stream* dapat dibuat dengan menggunakan API *NtCreateFile()*, sebuah cara yang sama dengan membuat sebuah berkas biasa dalam Windows NT.

Sebuah *stream* juga dapat dibuat dengan mengimpor atribut $DATA dari berkas lainnya dengan menggunakan *I/O Redirection* (> atau <), dari Command line interface. Contohnya adalah:

```
C:\>echo Ini adalah isi dari atribut $DATA dari berkas test > test
C:\>type C:\Windows\Notepad.exe > test:notepad.exe
```

Jika dibuka oleh program aplikasi, yang akan dibuka adalah atribut $Data yang utama (yang tidak memiliki nama), sehingga *stream* $DATA dengan nama notepad.exe dalam berkas test tersebut tidak akan terbaca (tersembunyi). Hal ini juga berlaku untuk semua *stream* yang terdapat di dalam berkas tersebut dan berkas lainnya.

```
C:\>type test
Ini adalah isi dari atribut $DATA dari berkas test
```

Selain itu, beberapa program juga tidak dapat secara langsung mengenali adanya stream. Contohnya, perintah "type" di atas tidak akan berguna untuk menampilkan apa isi dari atribut $DATA sebuah stream; Perintah "dir" juga sama: ia tidak akan menampilkan kapasitas berapa banyak *byte* yang telah diambil oleh stream tambahan dalam sebuah berkas, mengingat ia hanya menampilkan kapasitas berapa banyak byte yang diambil oleh *stream* utama. Salah satu cara untuk melihat apa yang terdapat di dalam stream adalah dengan menggunakan program notepad atau more, atau dengan menggunakan program yang telah mengenali adanya *stream*.

```
C:\>more < test:notepad.exe
[isi dari stream notepad.exe dalam berkas test akan ditampilkan]
```

Sehingga, *alternate data stream* juga dapat digunakan untuk menyimpan data secara tersembunyi: tidak terlihat sama sekali oleh program konvensional yang telah ada. Untuk menjalankan program (yang dapat dieksekusi) yang disimpan di dalam stream, dapat digunakan sintaksis berikut:

```
C:\>start .\<nama_berkas>.<ekstensi>:<nama_stream>.<ekstensi>
```

Beberapa jenis berkas yang memiliki *sheet* Summary atau tidak
Selain itu, stream juga digunakan oleh Windows Explorer untuk menampung beberapa informasi yang berkaitan dengan berkas yang bersangkutan (metadata berkas tersebut), yang dapat dimasukkan melalui properti berkas tersebut. Beberapa berkas, seperti .HTML/.HTM (kode HTML), .XML/.XSD (kode XML), .LNK/.PIF (shortcut), tidak dapat memiliki properti seperti dalam beberapa jenis berkas; dokumen Microsoft Office juga demikian, mengingat informasi *metadata* tersebut disimpan di dalam berkas yang bersangkutan.

Sebuah berkas yang memiliki stream yang hendak dipindahkan ke sebuah sistem berkas selain NTFS
Jika berkas dengan stream dipindahkan ke sebuah sistem berkas lainnya (selain NTFS), seperti halnya FAT32 atau FAT16, maka *stream* yang dikandungnya akan hilang.

Penyalahgunaan
--------------

Fitur *Alternate Data Stream* memang berguna, tapi ada juga beberapa masalah yang ditimbulkan oleh orang yang iseng. Beberapa virus, telah menggunakan metode ini untuk menyembunyikan dirinya dari program antivirus, sehingga sukar dideteksi jika tidak beraksi.

|  |  |
| --- | --- |
| Ikon rintisan | Artikel bertopik komputer ini adalah sebuah rintisan. Anda dapat membantu Wikipedia dengan mengembangkannya. |

* l
* b
* s