haplotype frequency = (number occurrences) / (total observations)
The "direct count" method haplotype frequency is literally an exact frequency of a haplotype in your observed samples, obtained by dividing the count of occurrences over total observations. To think about the "population" haplotype frequency, you could then consider this within a statistical framework.
With missing data (for example you only have SNPs, and want to estimate the frequency of those SNPs co-occurring on the same chromosome in the population (="haplotype"), you would need to derive haplotype frequencies by considering the probability of different genotypes co-occurring. The most common algorithm, I think, for doing this is the expectation-maximization algorithm of Excoffier and Slaktin (1995), linked below. This can be done with the program Haploview, also linked.
If you are interested in an efficient way to count the number of haplotypes based on DNA sequence alignments, I would recommend DnaSP, which can also reconstruct haplotypes from unphase data using 3 alternative methods: PHASE 2.1 (a coalescent-based Bayesian methods by Stephens et al. 2001), fastPHASE1.1 a modified algorithm of Phase2.1 taking into account patterns of linkage disequilibrium by Sheet & Stephens 2006; HAPAR based on a parsimony approach by Wang & Xu 2003.
DnaSP incorporates these approaches and is freely available and also provides good documentation on use and underlying methods: http://www.ub.edu/dnasp/
Once you have the haplotype counts, it's pretty straightforward to figure out the frequencies as show by the equation provided in the previous answer by Tyler Chafin.