Temporary Directory — apa itu, file sementara dan manajemen penyimpanan

Penulis: IT Sectr Diterbitkan: 2026-07-10 Waktu membaca: 10 mnt

Temporary Directory (tmp) — adalah direktori di dalam sandbox aplikasi iOS untuk menyimpan data yang sangat singkat yang hanya diperlukan dalam sesi aplikasi saat ini. Menurut Apple File System Programming Guide (2024), sistem dapat membersihkan tmp setiap kali aplikasi berakhir atau saat perangkat di-restart. Berbeda dengan Caches Directory, file sementara di tmp tidak dimaksudkan untuk disimpan antar peluncuran — pengembang harus secara eksplisit menghapusnya setelah digunakan agar tidak memenuhi ruang disk.

Poin Utama

  • Temporary Directory — direktori untuk data yang hanya diperlukan dalam sesi aplikasi saat ini.
  • Sistem iOS dapat membersihkan tmp saat restart perangkat atau penghentian aplikasi.
  • File dari tmp tidak termasuk dalam cadangan iCloud dan iTunes.
  • Path ke tmp diperoleh melalui NSTemporaryDirectory() di Swift atau Objective-C.
  • Pengembang harus menghapus sendiri file dari tmp setelah digunakan.

Apa itu Temporary Directory di iOS?

Temporary Directory (juga dikenal sebagai tmp) — adalah direktori di dalam sandbox aplikasi iOS, yang ditujukan untuk menyimpan data yang masa hidupnya terbatas pada sesi saat ini. Ini adalah penyimpanan paling singkat di antara semua direktori sandbox.

iOS menyediakan tmp untuk operasi yang memerlukan penyimpanan file perantara: mengunduh file sebelum dipindahkan ke Documents, membuat salinan sementara sebelum ekspor, buffering data streaming. Setelah operasi selesai, file sementara harus dihapus.

Menurut Apple Developer Documentation (2024), direktori tmp unik karena path-nya dapat berubah antar peluncuran aplikasi. iOS menghasilkan path baru ke tmp setiap kali diluncurkan — ini memastikan data dari sesi sebelumnya tidak terbaca secara tidak sengaja. Pengembang tidak boleh menyimpan path ke tmp antar peluncuran.

Penting: berbeda dengan Caches Directory, di mana data dapat bertahan beberapa kali peluncuran, tmp tidak menjamin penyimpanan data antar sesi dalam jangka panjang. Ini adalah cara paling andal untuk menyimpan data yang benar-benar sementara.

Cara mendapatkan path ke Temporary Directory

Di Swift untuk mendapatkan path ke tmp digunakan fungsi global NSTemporaryDirectory() atau FileManager.temporaryDirectory. Ini adalah API paling sederhana di antara semua direktori sandbox.

swift
import Foundation

// Opsi 1: NSTemporaryDirectory()
let tempDir = NSTemporaryDirectory()
let tempFile = (tempDir as NSString)
    .appendingPathComponent("export_temp.pdf")

// Opsi 2: FileManager.temporaryDirectory (URL)
let tempURL = FileManager.default.temporaryDirectory
let exportURL = tempURL.appendingPathComponent("export_temp.pdf")

Objective-C menggunakan fungsi global yang sama NSTemporaryDirectory(). Hasilnya — string dengan path lengkap ke direktori sementara aplikasi.

objective-c
@import Foundation;

NSString *tempDir = NSTemporaryDirectory();
NSString *tempFile = [tempDir stringByAppendingPathComponent:@"temp_data.bin"];

Perbedaan utama dari direktori lain: NSTemporaryDirectory() tidak memerlukan penentuan domain atau mask — ini adalah fungsi global. Namun path dapat berubah pada peluncuran berikutnya, jadi jangan pernah menyimpannya di UserDefaults atau penyimpanan persisten lainnya.

Data apa yang disimpan di tmp

Temporary Directory ditujukan untuk serangkaian skenario yang ditentukan secara ketat. Pengembang sering mengacaukan tmp dengan Caches, menempatkan di tmp data yang seharusnya bertahan lebih dari satu sesi. Mari kita lihat kasus penggunaan yang benar.

File perantara saat ekspor

File yang dibuat dalam proses ekspor data: salinan sementara laporan sebelum dikirim melalui email, arsip terkompresi sebelum diunduh, file perantara konversi format. Setelah ekspor selesai, file harus dihapus.

Buffering data streaming

Buffer sementara untuk merekam audio, video, atau data streaming yang diproses secara real-time. Misalnya, merekam suara sebelum disimpan ke penyimpanan permanen atau buffering streaming video.

SkenarioDirektoriAlasan
Ekspor PDF sebelum dikirimtmpFile tidak diperlukan setelah dikirim
Cache gambarCachesBerguna antar sesi
Unduh file sebelum dipindahkantmpPenyimpanan perantara
Log sesitmpHanya relevan dalam sesi
Edit dokumentmpVersi sebelum disimpan

Jika data hanya diperlukan di sini dan sekarang — gunakan tmp. Jika mungkin berguna di sesi berikutnya — gunakan Caches. Jika kehilangan data tidak dapat diterima — gunakan Documents.

Siklus hidup file sementara

iOS mengelola siklus hidup tmp berbeda dari direktori sandbox lainnya. Memahami siklus ini sangat penting untuk merancang penyimpanan file yang benar di aplikasi.

Setiap peluncuran aplikasi, iOS dapat mengalokasikan path baru untuk tmp. Path sebelumnya menjadi tidak dapat diakses, meskipun file fisik mungkin tetap ada di disk hingga restart perangkat. Karena alasan inilah Apple sangat menyarankan untuk tidak menyimpan path ke tmp antar sesi.

Menurut Apple Tech Note TN2150 (2024), sistem dapat membersihkan tmp dalam kasus berikut: saat restart perangkat, saat mencapai batas ruang disk, saat pembongkaran aplikasi (Offload). Berbeda dengan Caches, tmp tidak dimaksudkan untuk menyimpan data bahkan dalam beberapa peluncuran — ini adalah penyimpanan paling tidak dapat diandalkan di sandbox.

Pengembang wajib secara eksplisit menghapus file sementara setelah operasi selesai menggunakan FileManager.removeItem(at:). File yang tidak dihapus di tmp menumpuk dan memakan ruang disk — iOS tidak menjamin pembersihan otomatisnya dalam waktu dekat.

Temporary Directory vs Caches Directory

Perbandingan tmp dan Caches membantu pengembang mengambil keputusan yang tepat saat memilih direktori untuk penyimpanan. Kesalahan dalam pemilihan dapat menyebabkan hilangnya data prematur atau pemborosan ruang yang tidak perlu.

ParameterTemporary DirectoryCaches Directory
Masa hidupHanya sesi saat iniAntar sesi (tanpa jaminan)
Perubahan pathDapat berubah setiap peluncuranPath stabil
Pembersihan otomatisSaat restart, saat pembongkaranSaat kekurangan ruang
Penghapusan oleh pengembangWajib setelah operasiDisarankan saat melebihi batas
PenggunaanOperasi perantaraCache persisten

Aturan praktis: pilih tmp untuk data yang akan dihapus dalam beberapa detik atau menit setelah dibuat. Pilih Caches untuk data yang layak disimpan selama beberapa jam atau hari antar sesi, tetapi dapat dibuat ulang.

Praktik terbaik bekerja dengan tmp

Bekerja dengan Temporary Directory membutuhkan disiplin: karena data di tmp berumur pendek dan akumulasinya dapat menyebabkan pemborosan ruang yang tidak perlu, pengembang harus mengikuti beberapa praktik utama.

Selalu hapus file setelah digunakan

FileManager.removeItem(at:) harus dipanggil segera setelah operasi dengan file sementara selesai. Gunakan defer di Swift untuk menjamin penghapusan bahkan jika terjadi kesalahan.

swift
import Foundation

let tempURL = FileManager.default
    .temporaryDirectory
    .appendingPathComponent("upload_temp.dat")

defer {
    try? FileManager.default.removeItem(at: tempURL)
}

// Bekerja dengan file sementara
try "temporary data".write(to: tempURL, atomically: true)
// ... operasi file ...
// defer dieksekusi saat keluar dari scope

Jangan gunakan tmp untuk data berumur panjang

Jika data mungkin diperlukan satu jam setelah dibuat — simpan di Caches atau Application Support. tmp ditujukan untuk operasi menit, bukan untuk penyimpanan.

Mematuhi aturan ini memastikan file sementara tidak menumpuk, ruang disk digunakan secara efisien, dan aplikasi menangani skenario pembersihan sistem file iOS dengan benar.

Pertanyaan yang Sering Diajukan

Bisakah path ke Temporary Directory berubah saat aplikasi sedang berjalan?

Biasanya path tidak berubah dalam satu sesi, tetapi iOS tidak memberikan jaminan. Dalam kasus yang jarang terjadi, sistem dapat mengubah tmp saat aplikasi beralih dari latar belakang ke status aktif. Oleh karena itu Apple merekomendasikan untuk mendapatkan path ke tmp melalui NSTemporaryDirectory() setiap kali dipanggil, daripada menyimpannya dalam variabel.

Apa yang terjadi jika saya tidak menghapus file dari tmp?

File akan menumpuk dan memakan ruang disk. iOS dapat membersihkan tmp saat restart perangkat, tetapi hingga saat itu aplikasi akan membuang-buang ruang disk. Pada akumulasi yang signifikan, pengguna dapat melihat di pengaturan penyimpanan bahwa aplikasi memakan banyak ruang.

Apakah tmp cocok untuk enkripsi data sementara?

Ya, Anda dapat menggunakan DataProtectionType dengan NSFileProtectionComplete untuk file sementara yang berisi data sensitif. Namun ingat: jika file hanya akan dibaca dalam sesi saat ini dan kemudian dihapus — enkripsi mungkin berlebihan. Nilailah kebutuhan enkripsi berdasarkan jenis data.

Bagaimana cara membuat nama file unik di tmp tanpa benturan?

Gunakan ProcessInfo.processInfo.globallyUniqueString untuk menghasilkan pengidentifikasi unik atau UUID().uuidString. FileManager juga menyediakan metode urlForCreatingTemporaryFile yang secara otomatis menghasilkan nama unik di tmp. Ini menjamin tidak ada benturan saat penulisan paralel.

Apakah ukuran tmp mempengaruhi review App Store?

Secara tidak langsung — ya. Apple memperhatikan ukuran total data yang disimpan aplikasi di disk. Jika tmp berisi file yang tidak dihapus berukuran gigabyte, reviewer dapat menolak aplikasi. Batas yang disarankan untuk tmp — tidak lebih dari 100 MB setiap saat. Bersihkan tmp secara teratur dan periksa ukurannya melalui FileManager.

Kesimpulan

  • Temporary Directory (tmp) — direktori untuk data yang masa hidupnya terbatas pada sesi aplikasi saat ini.
  • Path ke tmp dapat berubah antar peluncuran — jangan simpan di penyimpanan persisten.
  • Sistem dapat membersihkan tmp saat restart perangkat atau pembongkaran aplikasi.
  • File dari tmp tidak termasuk dalam cadangan iCloud dan iTunes.
  • Berbeda dengan Caches Directory, tmp tidak dimaksudkan untuk penyimpanan antar sesi.
  • Pengembang harus secara eksplisit menghapus file sementara dengan FileManager.removeItem.
  • Gunakan defer di Swift untuk penghapusan file sementara yang terjamin pada hasil operasi apa pun.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga